home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / MS-DOS Interrupt List / inter60d / INTERRUP.Q < prev    next >
Text File  |  1999-01-03  |  350KB  |  9,631 lines

  1. Interrupt List, part 17 of 18
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. --------N-6B---------------------------------
  4. INT 6B - DECnet DOS - PORT DRIVER
  5. InstallCheck:    test for a signature area (see #03729) immediately preceding
  6.       the interrupt handler
  7. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  8. Index:    installation check;DECnet DOS Port Driver
  9.  
  10. Format of DECnet DOS signature area:
  11. Offset    Size    Description    (Table 03729)
  12.  -5    BYTE    major version number
  13.  -4    BYTE    minor version number
  14.  -3   3 BYTEs    signature (ASCII "PDV")
  15. --------v-6B---------------------------------
  16. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  17. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  18. --------h-6B---------------------------------
  19. INT 6B C - HP Vectra AT - IRQ19 - RESERVED HARDWARE INTERRUPT
  20. SeeAlso: INT 0B"IRQ3",INT 6A"HP Vectra",INT 6C"HP Vectra"
  21. --------S-6B0000-----------------------------
  22. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  23.     AX = 0000h
  24.     CX = length
  25.     ES:BX -> buffer
  26. Return: CX = number of bytes written
  27. Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased
  28.       from Network Products Corp, who call it NCSI) which runs on
  29.       workstations; NACS is the NetWare Asynchronous Communications
  30.       Services module which runs on servers
  31. InstallCheck:    test for the signature string "NCSI" three bytes past the
  32.       interrupt handler; see also AH=02h.
  33.     As of version 3.0, Novell's NASI can be distinguished from NPC's
  34.       NCSI by the presence of an 'A' immediately following the signature
  35. Notes:    this function is also supported by TelAPI, NPC NCSI, and Connection
  36.       Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
  37.       connection ID
  38.     Connection Manager returns CF set/AL=FFh if called while an INT 6B
  39.       call is already in progress
  40. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  41. --------S-6B0100-----------------------------
  42. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  43.     AX = 0100h
  44.     CX = length of buffer
  45.     ES:BX -> buffer
  46. Return: CX = number of bytes read
  47. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  48.       AL specify a connection ID
  49. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  50. --------S-6B02-------------------------------
  51. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  52.     AH = 02h
  53.     AL nonzero
  54. Return: AL = 00h if present and OK
  55. Note:    this function is also supported by TelAPI and NPC NCSI
  56. SeeAlso: AX=0700h
  57. --------S-6B0600-----------------------------
  58. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  59.     AX = 0600h
  60.     CX = command
  61.         02h send break
  62.         04h disconnect
  63.         06h hold
  64. Return: CF clear if successful
  65.         AL = 00h
  66.     CF set on error
  67.         AX < 0
  68. Note:    this function is also supported by TelAPI and NPC NCSI
  69. --------S-6B0700-----------------------------
  70. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  71.     AX = 0700h
  72. Return: CH <> 00h if connection active
  73. Notes:    this function is also supported by TelAPI and NPC NCSI
  74.     Novell TelAPI returns CX=FF01h and CF clear
  75. SeeAlso: AH=02h,AH=10h
  76. --------N-6B08-------------------------------
  77. INT 6B - TelAPI - CHECK FOR BREAK SIGNAL
  78.     AH = 08h
  79.     AL = circuit number
  80. Return: CF clear if no breaks
  81.         AL = 00h
  82.         CX = 0000h
  83.     CF set if one or more breaks received
  84. Note:    this function also clears ??? flag
  85. SeeAlso: INT 14/AX=FF00h
  86. --------S-6B10-------------------------------
  87. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  88.     AH = 10h
  89.     AL = connection ID (Novell TELAPI.EXE)
  90.     CX = ???
  91.     ES:BX -> buffer for status (see #03730)
  92. Return: CF clear if successful
  93.         CL = ???
  94.         CH = ???
  95.     CF set on error
  96.     ???
  97. Notes:    this function is also supported by TelAPI
  98.     when shelled out to an external protocol from Novell NASI, the circuit
  99.       whose status indicates that it is connected is the currently active
  100.       circuit
  101. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  102.  
  103. Format of NASI status:
  104. Offset    Size    Description    (Table 03730)
  105.  00h    BYTE    number of allocated virtual circuits
  106.  01h    BYTE    reserved
  107.  02h  9 BYTEs    states of emulated circuits 0-8
  108.         00h idle
  109.         01h attached Telnet session, in command state
  110.         02h attached Telnet session, connected with host
  111.         03h-06h ??? (not returned by TelAPI)
  112. Note:    this description is derived from the Novell TelAPI emulation of NASI
  113. --------S-6B11--DX0001-----------------------
  114. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  115.     AH = 11h
  116.     DX = 0001h
  117.     AL = 00h
  118.     ES:BX -> service name string (8 characters, blank-padded)
  119. Return: CF clear if successful
  120.         AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
  121.         CL = ??? (01h for Novell TELAPI.EXE)
  122.         CH = ??? (01h for Novell TELAPI.EXE)
  123.     CF set on error
  124.         ???
  125. Note:    this function is also supported by TelAPI
  126. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  127. --------S-6B12-------------------------------
  128. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  129.     AH = 12h
  130.     AL = virtual circuit number (0-8)
  131. Return: CF clear if successful
  132.         AL = virtual circuit number
  133.         CL = virtual circuit's state
  134.         00h idle
  135.         01h Telnet session, in command state
  136.         02h Telnet session, connected to host
  137.         03h-06h ??? (not returned by TelAPI)
  138.     CF set on error
  139.         AL = error code
  140.         E2h invalid virtual circuit number
  141.         E4h specified virtual circuit not allocated
  142. Note:    this function is also supported by TelAPI
  143. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  144. --------S-6B13-------------------------------
  145. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  146.     AH = 13h
  147.     AL = virtual circuit number
  148.     CL = direction (00h get, nonzero set)
  149.     ES:BX -> buffer for/containing service name
  150. Return: ???
  151. Note:    this function is also supported by TelAPI
  152. SeeAlso: AH=14h,AH=15h
  153. --------S-6B14-------------------------------
  154. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  155.     AH = 14h
  156.     AL = virtual circuit number
  157.     ES:BX -> buffer for/containing service address
  158. Return: ???
  159. Note:    this function is also supported by TelAPI, which only supports
  160.       retrieving the address
  161. SeeAlso: AH=13h,AH=15h,AH=21h
  162. --------S-6B15-------------------------------
  163. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  164.     AH = 15h
  165.     AL = virtual circuit number
  166.     CL = direction (00h get, nonzero set)
  167.     ES:BX -> buffer for/containing virtual circuit config (see #03731)
  168. Return: ES:BX buffer filled
  169. Note:    this function is also supported by TelAPI
  170. SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
  171.  
  172. Format of virtual circuit configuration:
  173. Offset    Size    Description    (Table 03731)
  174.  00h    WORD    buffer length
  175.  02h    WORD    port ID
  176.  04h    WORD    receive rate
  177.  06h    WORD    receive word length
  178.  08h    WORD    receive stop bits
  179.  0Ah    WORD    receive parity
  180.  0Ch    WORD    transmit rate
  181.  0Eh    WORD    transmit word length
  182.  10h    WORD    transmit stop bits
  183.  12h    WORD    transmit parity
  184.  14h    WORD    DTR
  185.  16h    WORD    RTS
  186. --------S-6B16-------------------------------
  187. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  188.     AH = 16h
  189.     AL = virtual circuit number
  190.     CL = ??? switch (00h, ???)
  191. Return: CF clear if successful
  192.         AL = virtual circuit number
  193.     CF set on error
  194.         ???
  195. Note:    this function is also supported by TelAPI, which always returns CF
  196.       clear and AL=00h
  197. SeeAlso: AH=11h,AH=12h,AH=17h
  198. --------S-6B17-------------------------------
  199. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  200.     AH = 17h
  201.     AL = virtual circuit number
  202. Return: CF clear if successful
  203.     CF set on error
  204.     ???
  205. Note:    this function is also supported by TelAPI, which always returns CF
  206.       clear and AL=00h
  207. SeeAlso: AH=11h,AH=16h
  208. --------S-6B18-------------------------------
  209. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  210.     AH = 18h
  211.     AL = virtual circuit number
  212.     CX = number of characters to send
  213.     ES:BX -> buffer containing characters to be sent
  214. Return: CF clear if successful
  215.     CF set on error
  216.     ???
  217. Note:    this function is also supported by TelAPI, which always returns CF
  218.       clear and AL=30h
  219. SeeAlso: AX=0000h,AH=12h,AH=19h
  220. --------S-6B19-------------------------------
  221. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  222.     AH = 19h
  223.     AL = virtual circuit number
  224.     CX = number of characters to read
  225.     ES:BX -> buffer for received characters
  226. Return: CX = 0000h if failed
  227.     CX = nonzero (possibly number of characters received) if successful
  228. Note:    this function is also supported by TelAPI
  229. SeeAlso: AX=0100h,AH=12h,AH=18h
  230. --------S-6B1A-------------------------------
  231. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  232.     AH = 1Ah
  233.     ???
  234. Return: ???
  235. SeeAlso: AH=12h,AH=1Bh
  236. --------S-6B1B-------------------------------
  237. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  238.     AH = 1Bh
  239.     ???
  240. Return: ???
  241. SeeAlso: AH=12h,AH=1Ah
  242. --------S-6B1C-------------------------------
  243. INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
  244.     AH = 1Ch
  245.     AL = circuit number
  246. Return: nothing
  247. SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
  248. --------S-6B1D-------------------------------
  249. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  250.     AH = 1Dh
  251.     ???
  252. Return: ???
  253. SeeAlso: AH=1Ch,AH=1Eh
  254. --------S-6B1E-------------------------------
  255. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  256.     AH = 1Eh
  257.     ???
  258. Return: ???
  259. SeeAlso: AH=1Ch,AH=1Dh
  260. --------S-6B1F-------------------------------
  261. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  262.     AH = 1Fh
  263.     ???
  264. Return: ???
  265. SeeAlso: AH=10h,AH=12h
  266. --------S-6B20-------------------------------
  267. INT 6B - Connection Manager CLIENT.EXE - ???
  268.     AH = 20h
  269.     ???
  270. Return: ???
  271. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  272.       serial ports over an IPX or NetBIOS-based network
  273. Note:    CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  274. --------S-6B21-------------------------------
  275. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  276.     AH = 21h
  277.     AL = virtual circuit number
  278.     CL = ??? (00h or 01h)
  279.     ES:BX -> buffer for service name structure (see #03732)
  280. Return: CF clear if successful
  281.         ES:BX buffer filled
  282.     CF set on error
  283. Notes:    a program should call this function after allocating a virtual circuit
  284.       and check that the general name matches the requested service
  285.     prior to version 3.0, Novell's NASI returned the first available port;
  286.       v3.0+ returns the first port found--check the returned status to
  287.       determine whether the port is available
  288. SeeAlso: AH=14h"NCSI"
  289.  
  290. Format of NCSI service name structure:
  291. Offset    Size    Description    (Table 03732)
  292.  00h    WORD    buffer length
  293.  02h  8 BYTEs    service name
  294.  0Ah  8 BYTEs    general name
  295.  12h  8 BYTEs    specific name
  296.  1Ah  4 BYTEs    ???
  297. ---Novell NASI v3.0+ ---
  298.  1Eh    BYTE    port number
  299.  1Fh    BYTE    port status
  300.         00h idle (available)
  301.         01h allocated (available)
  302.         02h connected
  303.         03h on hold
  304. ----------6B6B-------------------------------
  305. INT 6B - Tandy SCHOOLMATE PLUS - API
  306.     AH = 6Bh
  307.     AL = E0h to FFh
  308. Note:    details not yet available
  309. ----------6C---------------------------------
  310. INT 6C - system resume vector (CONVERTIBLE)
  311. ----------6C---------------------------------
  312. INT 6C - DOS 3.2 Realtime Clock update
  313. --------N-6C---------------------------------
  314. INT 6C - DECnet DOS network scheduler
  315. InstallCheck:    test for a signature area immediately preceding the interrupt
  316.       handler (see #03733)
  317. Note:    this function is also supported by DEC Pathworks for DOS
  318. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  319. Index:    installation check;DECnet DOS scheduler
  320.  
  321. Format of DECnet DOS signature area:
  322. Offset    Size    Description    (Table 03733)
  323.  -5    BYTE    major version number
  324.  -4    BYTE    minor version number
  325.  -3   3 BYTEs    signature (ASCII "SCH")
  326. --------h-6C---------------------------------
  327. INT 6C C - HP Vectra AT - IRQ20 - HP-HIL CONTROLLER INTERRUPT
  328. SeeAlso: INT 0C"IRQ4",INT 6B"HP Vectra",INT 6D"HP Vectra"
  329. --------V-6D---------------------------------
  330. INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
  331. Desc:    points at the original INT 10 entry point set up by the VGA BIOS
  332. Notes:    used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others
  333.     the Diamond Stealth64 BIOS uses this vector to store the INT 42 vector
  334.        of the inactive video (see INT 10/AH=12h/BL=35h)
  335. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 10/AH=12h/BL=10h
  336. --------V-6D---------------------------------
  337. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  338. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  339.       of a call to INT 6D followed by an IRET.
  340. --------N-6D---------------------------------
  341. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  342.     AH = function
  343.     ???
  344. Return: ???
  345. InstallCheck:    test for a signature area immediately preceding the interrupt
  346.       handler (see #03734)
  347. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  348. Index:    installation check;DECnet DOS Data Link Layer
  349.  
  350. Format of DECnet DOS signature area:
  351. Offset    Size    Description    (Table 03734)
  352.  -5    BYTE    major version number
  353.  -4    BYTE    minor version number
  354.  -3   3 BYTEs    signature (ASCII "DLL")
  355. --------h-6D---------------------------------
  356. INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT
  357. SeeAlso: INT 0D"IRQ5",INT 6C"HP Vectra",INT 6E"HP Vectra"
  358. --------V-6DBD60-----------------------------
  359. INT 6D U - Matrox Multiple Monitor Support v1.0 - ???
  360.     AX = BD60h
  361.     DS:SI -> buffer containing ??? (see #03735)
  362.     ???
  363. Return: AX = 00BDh if function executed
  364.        ???:SI -> 22-byte buffer (inside TSR) filled with ??? (see #03735)
  365.     AX unchanged if function disabled
  366. Note:    this function is a NOP if AX=BD6Fh/BL=01h was called
  367. SeeAlso: AX=BD61h,AX=BD6Fh,AX=BDFFh
  368.  
  369. Format of Matrox ??? buffer:
  370. Offset    Size    Description    (Table 03735)
  371.  00h  4 BYTEs    ???
  372.  04h    WORD    video mode width in pixels
  373.  06h    WORD    video mode height in pixels
  374.  08h    BYTE    ???
  375.  09h    BYTE    ???
  376.  0Ah    BYTE    ???
  377.  0Bh    BYTE    flags
  378.         bit 1: ???
  379.         bit 4: ??? (corresponds to bit 14 for AX=BD61h)
  380.         bit 5: ??? (corresponds to bit 15 for AX=BD61h)
  381.  0Ch    DWORD    -> ??? buffer
  382.  10h    WORD    ???
  383.         bit 4: ??? (corresponds to bit 14 for AX=BD61h)
  384.         bit 5: ??? (corresponds to bit 15 for AX=BD61h)
  385.  12h  4 BYTEs    ???
  386. SeeAlso: #03736
  387. --------V-6DBD61-----------------------------
  388. INT 6D U - Matrox Multiple Monitor Support v1.0 - GET VIDEO MODE INFORMATION
  389.     AX = BD61h
  390.     BX = width in pixels (bits 13-0)
  391.         bit 14: ???
  392.         bit 15: ???
  393.     CX = height in pixels
  394. Return: AL = BDh if function supported
  395.         AH = status
  396.         00h successful
  397.         01h failed (resolution/flags not supported)
  398.         CX:BX -> video mode data structure (see #03736)
  399.           (first word is FFFFh if unsupported resolution)
  400.         EAX high word cleared
  401. SeeAlso: AX=BD60h,AX=BD6Fh,AX=BDFFh
  402.  
  403. Format of Matrox video mode information (VCE structure):
  404. Offset    Size    Description    (Table 03736)
  405.  00h    WORD    width in pixels
  406.  02h    WORD    height in pixels
  407.  04h    WORD    ???
  408.  06h    DWORD    dot clock frequency
  409.  0Ah 25 BYTEs    ???
  410. SeeAlso: #03735
  411. --------V-6DBD6F-----------------------------
  412. INT 6D U - Matrox Multiple Monitor Support v1.0 - INSTALLATION CHECK
  413.     AX = BD6Fh
  414.     BL = subfunction
  415.         00h installation check
  416.         01h disable TSR
  417.         02h enable TSR (see AX=BD60h)
  418. Return: AX = 00BDh if installed
  419. SeeAlso: AX=BD60h,AX=BD61h,AX=BDFFh
  420. --------V-6DBDFF-----------------------------
  421. INT 6D U - Matrox Multiple Monitor Support v1.0 - UNHOOK INTERRUPT (UNINSTALL)
  422.     AX = BDFFh
  423. Return: AX = 00BDh if supported
  424. Note:    this function revectors INT 6D without checking that it points at the
  425.       TSR, and does not release the memory occupied by the TSR
  426. SeeAlso: AX=BD60h,AX=BD61h,AX=BD6Fh
  427. --------N-6E---------------------------------
  428. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  429. InstallCheck:    test for the signature/data area (see #03737) immediately prior
  430.       to the interrupt handler
  431. Note:    this is the main DECnet DOS access, and is described in Digital manual
  432.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  433. Index:    installation check;DECnet DOS
  434.  
  435. Format of DECnet DOS signature area:
  436. Offset    Size    Description    (Table 03737)
  437.  -5    BYTE    major version number
  438.  -4    BYTE    minor version number
  439.  -3   3 BYTEs    signature (ASCII "DNP")
  440. --------h-6E---------------------------------
  441. INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT
  442. SeeAlso: INT 0E"IRQ6",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra"
  443. --------N-6F---------------------------------
  444. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  445.     AX = function
  446.         0000h enter terminal mode
  447.         Return: AX = status
  448.                 0000h no action requested
  449.                 0001h screen save
  450.         0001h reset interface and set configuration parameters
  451.         DX = bitfields
  452.             bits 2-0: model number
  453.             bits 4-3: I/O address
  454.             bits 6-5: DMA channel
  455.         Return: nothing
  456.         0002h set display parameters
  457.         DX = bitfields
  458.             bits 1-0: OIA mode
  459.             bits 4-2: monitor support
  460.         Return: nothing
  461.         0003h read status
  462.         Return: AX = status word (see #03738)
  463.         0004h read cursor position
  464.         Return: AX = cursor position
  465.         0005h get character from device buffer
  466.         DX = cursor position
  467.         Return: AH = type (00h data, 01h attribute)
  468.             AL = data or attribute character
  469.         0006h send character
  470.         DH = type (00h ASCII, 01h extended code)
  471.         DL = ASCII character or extended code
  472.         Return: nothing
  473.         0007h set timeout
  474.         DX = timeout in seconds
  475.         Return: nothing
  476.         0008h wait for location to be modified
  477.         DX = cursor position
  478.         Return: AX = status (0000h modified, nonzero timeout)
  479.         0009h NOP
  480.         000Ah restore display
  481.         Return: nothing
  482.         000Bh update device buffer
  483.         Return: AX = cursor positoin
  484.         000Ch write string to add information area
  485.         DS:DX -> string
  486.         Return: nothing
  487.         000Dh maintenance operations
  488.         DX = maintenance operation code
  489.         Return: AX = operation status
  490.         000Eh get control program version
  491.         Return: AH = release number (major version)
  492.             AL = level number (minor version)
  493.         000Fh get microcode version
  494.         Return: AH = release number (major version)
  495.             AL = level number (minor version)
  496.         0010h save or display graphics
  497.         BX = length of data buffer
  498.         CX = subfunction request code
  499.         DS:DX -> data buffer
  500.         Return: AX = return code
  501.             CX = length of PIF data
  502.         0011h perform structured field operation
  503.         CX = request number
  504.         DS:DX -> parameter list
  505.         Return: AX = status word (see #03738)
  506.             CX = error number
  507.         0012h set cursor position for direct write buffer
  508.         DX = new cursor position
  509.         Return: AX = status word (see #03738)
  510.         0013h write direct to buffer
  511.         DL = character to be written
  512.         DH = translation option
  513.         Return: AX = status word (see #03738)
  514.         0014h write direct to buffer without echo
  515.         DL = character to be written
  516.         DH = translation option
  517.         Return: AX = status word (see #03738)
  518.         0015h set direct write string length
  519.         DX = string value
  520.         Return: nothing
  521.         0016h write string direct to buffer
  522.         DS:DX -> string
  523.         Return: AX = status word (see #03738)
  524.         0017h write string direct to buffer, untranslated
  525.         DS:DX -> string
  526.         Return: AX = status word (see #03738)
  527.         0018h get direct-write cursor position
  528.         Return: AX = cursor position
  529.         0019h convert row/column to cursor position
  530.         DH = display row (1-43)
  531.         DL = display column (1-132)
  532.         Return: AX = cursor position
  533.         001Ah convert cursor position to row/column
  534.         DX = cursor position
  535.         Return: AH = display row
  536.             AL = display column
  537.         001Bh find next field
  538.         DX = initial cursor position
  539.         Return: AX = field cursor position
  540.         001Ch find previous field
  541.         DX = initial cursor position
  542.         Return: AX = field cursor position
  543.         001Dh find next unprotected field
  544.         DX = initial cursor position
  545.         Return: AX = field cursor position
  546.         001Eh find previous unprotected field
  547.         DX = initial cursor position
  548.         Return: AX = field cursor position
  549.         001Fh find next protected field
  550.         DX = initial cursor position
  551.         Return: AX = field cursor position
  552.         0020h find previous protected field
  553.         DX = initial cursor position
  554.         Return: AX = field cursor position
  555.         0021h masked search forward
  556.         DH = mask
  557.         DL = search pattern
  558.         Return: AX = cursor position or 0000h
  559.         0022h masked search backward
  560.         DH = mask
  561.         DL = search pattern
  562.         Return: AX = cursor position or 0FFFh
  563.         0023h find field length
  564.         DX = cursor position
  565.         Return: AX = field length
  566.         0024h read field
  567.         DS:DX -> buffer for field contents
  568.         Return: AX = status word (see #03738)
  569.         0025h read screen
  570.         DS:DX -> buffer for screen contents
  571.         Return: AX = status word (see #03738)
  572.         0026h read buffer untranslated
  573.         DX = cursor position
  574.         Return: AX = buffer code
  575.             CX:BX -> 3278/79 device buffer image
  576.         0027h enable/disable keyboard
  577.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  578.         Return: nothing
  579.         0028h select host session
  580.         DL = session short name
  581.         Return: AX = session information
  582.         0029h retrieve host session name
  583.         AX = short name (DFT) or 0000h (not available, CUT mode)
  584.         002Ah get current device buffer size
  585.         Return: AX = device buffer size
  586.             CX = segment of EAB
  587.         002Bh arm modified location trigger
  588.         DX = cursor position
  589.         Return: AX = status (0000h not available, 0001h successful)
  590.  
  591. Bitfields for PCOX status word:
  592. Bit(s)    Description    (Table 03738)
  593.  0,1    cursor type
  594.  2    cursor inhibited
  595.  3    display inhibited
  596.  4    feature step inhibited
  597.  5    480-character format code
  598.  6,7    unused
  599.  8-10    model number (2-5)
  600.  11    unit has been reset by controller (cleared after status returned)
  601.  12    buffer has been written into (cleared after status returned)
  602.  13    alarm has been sounded (cleared after status returned)
  603.  14-15    monitor type (01 mono, 10 color, 11 hybrid)
  604. --------N-6F00-------------------------------
  605. INT 6F - 10NET - LOGIN
  606.     AH = 00h
  607.     DS:DX -> login record (see #03739)
  608. Return: CL = security level
  609.     AX = status (see #03740)
  610. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  611.  
  612. Format of 10NET login record:
  613. Offset    Size    Description    (Table 03739)
  614.  00h  8 BYTEs    user name
  615.  08h  8 BYTEs    password
  616.  10h 12 BYTEs    name of SuperStation
  617.  
  618. (Table 03740)
  619. Values for 10NET status:
  620.  0000h    successful
  621.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  622.  02FFh    "NET_NERR" network (hardware) error
  623.  03FFh    "PAS_NERR" invalid password
  624.  04FFh    "LRN_NERR" local resource not available
  625.  05FFh    "SRN_NERR" server resource not available
  626.  06FFh    "LNM_NERR" already logged in under different name
  627.  07FFh    "LSF_NERR" login security failure (node)
  628.  08FFh    "NLI_NERR" not logged in
  629.  09FFh    "DIVZ_NERR" position calc error
  630.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  631.  0BFFh    "RFNC_NERR" request function not in range
  632.  0CFFh    "NSFH_NERR" no more server file handle entries left
  633.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  634.  0EFFh    "NUFH_NERR" no more user file handle entries left
  635.  0FFFh    "CHAT_NERR" chat permit not on
  636.  10FFh    "NSRV_NERR" not a server on request
  637.  11FFh    "NOBD_NERR" no transporter board error
  638.  12FFh    "STO_NERR" time out on send
  639.  13FFh    "INF_NERR" item not found (spool item not on queue)
  640.  14FFh    "DACS_NERR" DOS access incompatible
  641.  15FFh    "RLOCK_NERR" record already locked
  642.  16FFh    "IVP_NERR" invalid parameter
  643.  17FFh    "RLTO_NERR" record lock time out error
  644.  18FFh    "CSPL_NERR" currently spooling to named device
  645.  19FFh    "DRP_NERR" dropped receive message (throttle)
  646.  1AFFh    "SOPV_NERR" open sharing violation
  647.  1BFFh    "NTUF_NERR" no more tuf entries left
  648.  1CFFh    "NOWN_NERR" not file owner on open
  649.  1DFFh    "RSEC_NERR" read security not passed
  650.  1EFFh    "WSEC_NERR" write security not passed
  651.  1FFFh    "GSEC_NERR" group security not passed
  652.  20FFh    "SEC1_NERR" security file failure
  653.  21FFh    "ACT1_NERR" activity file failure
  654.  22FFh    "SPL1_NERR" spool control file failure
  655.  23FFh    "NMT_NERR" device not mounted (spooling)
  656.  24FFh    "RSPL_NERR" spool file has not been terminated
  657.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  658.  26FFh    "DUP_NERR" duplicate node ID
  659.  27FFh    "FNF_NERR" file not found error
  660.  28FFh    "NMF_NERR" no more files
  661.  29FFh    "UN_NERR" unknown internal system error
  662.  2AFFh    "QCP_NERR" print queue is full or corrupted
  663.  2BFFh    "IFNC_NERR" invalid function
  664.  2CFFh    "IVH_NERR" invalid handle
  665.  2DFFh    "TOF_NERR" too many files opened
  666.  2EFFh    "PNF_NERR" path not found
  667.  2FFFh    "SACT_NERR" named file is active
  668. ---10NET v5.0+ ---
  669.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  670.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  671.  32FFh    "RECV_NERR" driver could not be put in receive mode
  672.  33FFh    "NRLT_NERR" no more RLTAB entries left
  673.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  674.  35FFh    "IVD_NERR" invalid device
  675.  36FFh    "NALV_NERR" netname access level violated
  676.  37FFh    "NPIDNF_NERR" network path not found
  677.  38FFh    "SP_NERR" server is paused
  678.  39FFh    "TMNM_NERR" too many remote user names
  679.  3AFFh    "DUPD_NERR" duplicate network device
  680.  3BFFh    "DIU_NERR" shared device in use, can't delete
  681.  3CFFh    "NNWD_NERR" network name was deleted
  682.  3DFFh    "NPFS_NERR" not enough space for print file
  683.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  684.  3FFFh    "NB_NERR" network busy
  685.  40FFh    "NDNLE_NERR" network device no longer exists
  686.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  687.  42FFh    "FINT24_NERR" Fail on INT 24h
  688.  43FFh    "PEXP_NERR" password expired
  689.  44FFh    "NPUP_NERR" new password error
  690.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  691.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  692. SeeAlso: #03767
  693. Index:    error codes;10Net|10Net;error codes
  694. --------b-6F00-------------------------------
  695. INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR
  696.     AH = 00h
  697.     BP = ID for driver (see #03741)
  698.     DH = data type (see #03742)
  699.     DL = physical device driver's index (driver ID / 6)
  700.     BX,CX = data
  701.     ES:0000h -> physical device's Describe Record (see #03749)
  702.     ---keypress event data---
  703.         BH = keyboard state (only if bit 5 of DH set) (see #03743)
  704.         BL = scancode (if bit 4 of DH clear)
  705.         CX = number of scancodes in list (if bit 4 of DH set)
  706.         ES:SI -> scancode list (if bit 4 of DH set)
  707.     ---motion event data---
  708.         BX = new X position (abs device) or X increment (relative device)
  709.         CX = new Y position (abs device) or Y increment (relative device)
  710.     ---button event data
  711.         BL = button information
  712.         bits 15-8 reserved
  713.         bit 7: button state (0 = down, 1 = up)
  714.         bits 6-0: button number (0-7)
  715.         BH = reserved
  716. Return: AH = status (see #03744)
  717.     BP,DS destroyed
  718.     ---if device is keyboard translator---
  719.         BL = translated scancode
  720.         BH = new keyboard state (if DH bit 5 set) (see #03743)
  721.         DH = new scancode type (see #03742)
  722. Notes:    INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is
  723.       unavailable because of its use as a BIOS extension software interrupt
  724.     the INT 6F handler consists of an instruction to load DS with the
  725.       driver's data segment followed by an indexed far jump using BP to
  726.       select the destination vector; since the interrupt handler is
  727.       located immediately following the dispatch table, the HP_VECTOR_TABLE
  728.       may be found by looking at offset 0000h in the INT 6F segment, and
  729.       its size is equal to the offset of the interrupt handler
  730.     each entry in the HP_VECTOR table consists of a DWORD for the driver's
  731.       entry point address and a WORD for the driver's data segment
  732.     this function is not user-callable, as it is a response to a physical
  733.       event, and assumes that the caller has already handled the physical
  734.       interrupt and updated the Describe Record (see #03749) to reflect
  735.       the event
  736. SeeAlso: INT 6C"HP Vectra",INT 6F/AX=0200h"HP Vectra"
  737.  
  738. (Table 03741)
  739. Values for HP Vectra EX-BIOS driver ID:
  740.  0000h    V_SCOPY (null driver, but DS value points at system copyright string)
  741.  0006h    V_DOLITTLE (null driver)
  742.  000Ch    V_PNULL (null driver)
  743.  0012h    V_SYSTEM
  744.  0018h    reserved
  745.  001Eh    V_S8259
  746.  0024h    reserved
  747.  002Ah    V_SINPUT
  748.  0030h    reserved
  749.  0036h    V_QWERTY (keyboard translator)
  750.  003Ch    V_SOFTKEY (keyboard translator)
  751.  0042h    V_FUNCTION (keyboard translator)
  752.  0048h    V_NUMPAD (keyboard translator)
  753.  004Eh    V_CCP (keyboard translator)
  754.  0054h    V_SVIDEO
  755.  005Ah    V_STRACK
  756.  0060h    V_EVENT_TOUCH
  757.  0066h    V_EVENT_TABLET
  758.  006Ch    V_EVENT_POINTER
  759.  0072h    reserved
  760.  0078h    reserved
  761.  007Eh    reserved
  762.  0084h    reserved
  763.  008Ah    V_CCPCUR (keyboard translator)
  764.  0090h    V_RAW (keyboard translator)
  765.  0096h    V_CCPNUM (keyboard translator)
  766.  009Ch    V_OFF (keyboard translator)
  767.  00A2h    V_CCPGID (translator: cursor control pad keys to GID data)
  768.  00A8h    V_SKEY2FKEY (keyboard translator)
  769.  00AEh    V_8041
  770.  00B4h    V_PGID_CCP
  771.  00BAh    C_LTABLET
  772.  00C0h    V_LPOINTER (pointing device: mouse, etc.)
  773.  00C6h    V_LTOUCH (touch screen)
  774.  00CCh    V_LHPMOUSE
  775.  00D2h    ???
  776.  ...
  777.  0102h    ???
  778.  0108h    V_LNULL
  779.  010Eh    reserved
  780.  0114h    V_HPHIL
  781.  011Ah-01C2h reserved
  782.  016Eh    V_SCANDOOR (scancode management chip driver) (ES/QS/RS only)
  783.  01C8h-0228h available
  784.  
  785. (Table 03742)
  786. Values for HP Vectra EX-BIOS ISR data type:
  787.  00h    reserved "T_KC_R0"
  788.  01h    reserved "T_KC_R1"
  789.  02h    ASCII data
  790.  03h    reserved "T_KC_R3"
  791.  04h    HP150 keyboard (ITF) scancode
  792.  05h    reserved "T_KC_R5"
  793.  06h    device-definable type
  794.  07h    HP Vectra keyboard set
  795.  08h    IBM AT scancode set
  796.  09h    button data
  797.  0Ah    IBM PC scancode set
  798.  0Bh    Softkey keypad (F1-F8)
  799.  0Ch    function key keypad (F1-F10)
  800.  0Dh    HP Cursor Control Pad keypad
  801.  0Eh    Qwerty keypad
  802.  0Fh    Numeric keypad
  803.  1xh    bit 4 set: string of CX scancode of type 0xh at ES:SI
  804.  2xh    bit 5 set: BH contains current keyboard state
  805.  40h    signed 8-bit relative data
  806.  41h    signed 16-bit relative data
  807.  42h    unsigned 8-bit absolute data
  808.  43h    unsigned 16-bit absolute data
  809.  45h    specially-formed data (80x25) generated by V_LTOUCH
  810.  46h    specially-formed data (640x200) generated by V_LTABLET
  811.  47h    specially-formed data (640x200) generated by V_LPOINTER
  812.  
  813. Bitfields for HP Vectra EX-BIOS keyboard state:
  814. Bit(s)    Description    (Table 03743)
  815.  0    Alt pressed
  816.  1    Left Shift pressed
  817.  2    Right Shift pressed
  818.  3    Ctrl pressed
  819.  4    CapsLock active
  820.  5    NumLock active
  821.  6    Right unlabeled key pressed (some international keyboards)
  822.  7    Left unlabeled key pressed (some international keyboards)
  823. SeeAlso: #00582
  824.  
  825. (Table 03744)
  826. Values for HP Vectra EX-BIOS status:
  827.  00h    successful
  828.  02h    unsupported function
  829.  04h    not serviced
  830.  06h    done (no further processing should be performed on the ISR event)
  831.  F2h    device is out of paper
  832.  F4h    device is offline
  833.  F6h    no more space for more drivers
  834.  F8h    driver is busy
  835.  FAh    bad parameter
  836.  FEh    operation failed
  837. Note:    status codes are always even; negative values (>= 80h) indicate errors
  838.       while positive values indicate exceptional conditions
  839.  
  840. Format of HP EX-BIOS driver header data:
  841. Offset    Size    Description    (Table 03745)
  842.  00h    WORD    driver attributes (see #03746)
  843.  02h    WORD    string index of driver's name
  844.  04h    WORD    driver's default logical device vector (see #03741)
  845.  06h    WORD    driver's parent class (bitset) (see #03747)
  846.  08h    WORD    driver's child class (bitset)
  847.  0Ah    WORD    driver's parent vector
  848.  0Ch    WORD    driver's child vector
  849.  0Eh    BYTE    major subaddress
  850.  0Fh    BYTE    minor subaddress
  851. Notes:    this structure is located at offset 0 in the driver's data segment,
  852.       which in turn may be read from the HP_VECTOR_TABLE (refer to note in
  853.       main entry)
  854.     only the first WORD is required, and everything from offset 6 onward
  855.       is only required if the device wishes to perform device mapping
  856. SeeAlso: #03748,#03749
  857.  
  858. Bitfields for HP EX-BIOS driver header attributes:
  859. Bit(s)    Description    (Table 03746)
  860.  15    this is a complete driver header
  861.  14    "ATR_DEVCFG" reserved
  862.  13    driver can be mapped with the parent vector at offset 0Ah
  863.  12    driver can be mapped with the child vector at offset 0Ch
  864.  11-9    driver type
  865.     000 reserved vector
  866.     001 free vector
  867.     010 EX-BIOS service
  868.     011 logical driver (mapped from parent to child)
  869.     100 mappable driver (cannot be last in driver chain)
  870.     101 mappable driver that is last in driver chain
  871.     110 input driver (mappable)
  872.     111 reserved
  873.  8    "ATR_STRING" reserved
  874.  7    call SF_START whenever driver is remapped
  875.  6-5    addressing requirements
  876.     00 no subaddresses required
  877.     01 requires major address be stored at offset 0Eh
  878.     10 requires minor address be stored at offset 0Fh
  879.     11 required major,minor, and mid addresses (minor in low nybble of
  880.           offset 0Fh, mid address in high nybble of 0Fh)
  881.  4    driver can be shared between several parent drivers
  882.  3    driver can be shared between several child drivers
  883.  2    this driver header is in ROM
  884.  1    "ATR_YIELD" reserved
  885.  0    reserved
  886. SeeAlso: #03745,#03747
  887.  
  888. Bitfields for HP EX-BIOS driver class:
  889. Bit(s)    Description    (Table 03747)
  890.  15    maps F1 to F8 softkeys
  891.  14    keyboard
  892.  13    cursor pad
  893.  12    console device
  894.  11    serial output device (may be capable of limited input)
  895.  10    "CL_COMM" reserved
  896.  9    interfaces multiple resources transparent to operating system
  897.  8    serial output device filter (can be mapped between logical and physical
  898.       driver to perform translations)
  899.  7    addressed block device
  900.  6    priority boot device
  901.  5    logical graphics input device
  902.  4    physical graphics input device (can map to child of another driver)
  903.  3    "CL_GID" can map to an event
  904.  2    physical touch device
  905.  1    reserved
  906.  0    class extension bit
  907. Note:    special values: FFFFh maps to all other devices (V_PNULL), and 0000h
  908.       maps to no other driver
  909. SeeAlso: #03745
  910.  
  911. Format of HP EX-BIOS global data area:
  912. Offset    Size    Description    (Table 03748)
  913.  00h 20 BYTEs    reserved
  914.  14h    BYTE    sound driver status
  915.  15h    BYTE    number of pending key clicks (max 4) (see AH=34h/BP=0012h)
  916.  16h    BYTE    current tick duration scaling factor
  917.  17h    BYTE    current key click volume
  918.  18h    WORD    current beep period (10 us increments) (see AH=3Ch/BP=0012h)
  919.  1Ah    WORD    current beep duration (10 us increments)
  920.  1Ch    BYTE    number of pending beep functions (max 4) (see AH=3Ah/BP=0012h)
  921.  1Dh    BYTE    reserved
  922.  1Eh    WORD    next unused string index number
  923.  20h    ...    reserved
  924. SeeAlso: #03745
  925.  
  926. Format of HP EX-BIOS Driver Describe Record:
  927. Offset    Size    Description    (Table 03749)
  928.  00h 16 BYTEs    EX-BIOS driver header data (see #03745)
  929.  10h    BYTE    device GID type
  930.         bits 7-4: device type
  931.         bits 3-0: physical device link address
  932.  11h    BYTE    physical device ID (see #03751)
  933.  12h    WORD    logical device status bits (see #03750)
  934.  14h    BYTE    physical device vector number (driver ID / 6)
  935.  15h    BYTE    maximum number of axes reported (0-2)
  936.  16h    BYTE    device class
  937.         bits 7-4: current class
  938.         bits 3-0: default class
  939.  17h    BYTE    number of buttons/prompts
  940.         bits 7-4: number of prompts
  941.         bits 3-0: number of buttons
  942.  18h    BYTE    reserved
  943.  19h    BYTE    (physical devices only) maximum output burst length
  944.  1Ah    BYTE    (physical devices only) number of write registers
  945.  1Bh    BYTE    (physical devices only) number of read registers
  946.  1Ch    BYTE    button transition flags (bit 0 = button0, etc.)
  947.  1Dh    BYTE    current button states (bit 0 = button0, etc.)
  948.  1Eh    WORD    device resolution
  949.  20h    WORD    maximum x-axis count
  950.  22h    WORD    maximum y-axis count
  951.  24h    WORD    X position data for absolute devices
  952.  26h    WORD    Y position data for absolute devices
  953.  28h    WORD    X delta for relative devices
  954.  2Ah    WORD    Y delta for relative devices
  955.  2Ch    WORD    (logical devices only) X-axis scaling accumulator
  956.         (fraction of one logical unit)
  957.  2Eh    WORD    (logical devices only) Y-axis scaling accumulator
  958.         (fraction of one logical unit)
  959.  
  960. Bitfields for HP logical device status flags:
  961. Bit(s)    Description    (Table 03750)
  962.  15-5    reserved
  963.  4    event enabled
  964.  3    tracking enabled
  965.  2    clipping enabled
  966.  1    button error occurred
  967.  0    interrupt in progress
  968. SeeAlso: #03749
  969.  
  970. (Table 03751)
  971. Values for HP-HIL device ID:
  972.  00h-02h reserved
  973.  03h    Swiss-French keyboard
  974.  04h-06h reserved
  975.  07h    Canadian-English keyboard
  976.  08h-0Ah reserved
  977.  0Bh    Italian keyboard
  978.  0Ch    reserved
  979.  0Dh    Dutch keyboard
  980.  0Eh    Swedish keyboard
  981.  0Fh    German keyboard
  982.  10h-12h reserved
  983.  13h    Spanish keyboard
  984.  14h    reserved
  985.  15h    Belgian (Flemish) keyboard
  986.  16h    Finnish keyboard
  987.  17h    UK keyboard
  988.  18h    French-Canadian keyboard
  989.  19h    Swiss-German keyboard
  990.  1Ah    Nerwegian keyboard
  991.  1Bh    Frensh keyboard
  992.  1Ch    Danish keyboard
  993.  1Dh    Katakana keyboard
  994.  1Eh    Latin American-Spanish keyboard
  995.  1Fh    US-American keyboard
  996.  20h-2Bh reserved
  997.  2Ch-2Fh tone generator
  998.  30h-3Fh reserved
  999.  40h-5Bh reserved (character entry)
  1000.  5Ch-5Fh barcode reader
  1001.  60h-67h reserved (relative positions)
  1002.  68h-6Bh mouse
  1003.  6Ch-6Fh trackball
  1004.  70h-7Fh reserved (relative positions)
  1005.  80h-87h reserved (absolute positions)
  1006.  88h-8Bh touchpad
  1007.  8Ch-8Fh touch screen
  1008.  90h-97h graphics tablet
  1009.  98h-9Fh reserved (absolute positions)
  1010.  A0h-BFh compressed keyboard (91-93 keys)
  1011.  C0h-DFh extended keyboard (107-109 keys)
  1012.  E0h-FFh standard keyboard (85-87 keys)
  1013. --------N-6F01-------------------------------
  1014. INT 6F - 10NET - LOGOFF
  1015.     AH = 01h
  1016.     DS:DX -> superstation ID or nulls (12 bytes)
  1017. Return: CX = number of files closed
  1018.     AX = status (see also #03740)
  1019.         08FFh superstation ID not already logged in
  1020. SeeAlso: AH=00h"10NET",AH=81h
  1021. --------N-6F02-------------------------------
  1022. INT 6F - 10NET - STATUS OF NODE
  1023.     AH = 02h
  1024.     DS:DX -> 512-byte status record (see #03753)
  1025. Return: CF clear if successful
  1026.     CF set on error
  1027.         AX = error code (see #03740)
  1028. SeeAlso: INT 21/AX=5E01h"10NET"
  1029.  
  1030. (Table 03752)
  1031. Values for 10NET station type:
  1032.  00h    workstation
  1033.  01h    superstation
  1034.  02h    gateway station
  1035.  03h    gateway active
  1036.  04h    logged into multiple superstations
  1037.  05h    reserved
  1038.  
  1039. Format of 10NET node status record:
  1040. Offset    Size    Description    (Table 03753)
  1041.  00h  8 BYTEs    user name (0 if none)
  1042.  08h    BYTE    station type (see #03752)
  1043.  09h 24 BYTEs    list of superstations logged into more than one superstation
  1044.  21h 12 BYTEs    node ID
  1045.  2Dh    WORD    message count for this station (send for user node, receive for
  1046.           superstations)
  1047. ---for superstations only---
  1048.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  1049.  31h    BYTE    user service flags (see #03754)
  1050.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  1051.  33h    BYTE    number of unprinted spool files
  1052.  34h    BYTE    number of opened files
  1053.  35h    BYTE    number of logged on nodes
  1054.  36h    BYTE    primary drive (1=A:)
  1055.  37h    BYTE    reserved
  1056.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  1057. 1F4h  3 BYTEs    time: sec/min/hrs
  1058. 1F7h  3 BYTEs    date: day/mon/year-1980
  1059.  
  1060. Bitfields for 10NET user service flags:
  1061. Bit(s)    Description    (Table 03754)
  1062.  7    gate
  1063.  6    print permit on
  1064.  4    SUBMIT is on
  1065.  3    mail waiting for node
  1066.  2    calendar waiting for you
  1067.  1    news waiting for you
  1068.  0    mail waiting for you
  1069. --------b-6F0200-----------------------------
  1070. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER
  1071.     AX = 0200h
  1072.     BP = driver ID (see #03741)
  1073.     BX = "last-used DS" value from HP global data area (see #03748)
  1074. Return: AH = status (see #03744)
  1075.     BX = new "last-used DS" value
  1076.     BP,DS destroyed
  1077. SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ch"F_INS_FIXOWNDS"
  1078. --------b-6F0202-----------------------------
  1079. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ.
  1080.     AX = 0202h
  1081.     BP = driver ID (see #03741)
  1082. Return: AH = status (see #03744)
  1083.     BP,DS destroyed
  1084. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra"
  1085. --------W-6F0204-----------------------------
  1086. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  1087.     AX = 0204h
  1088. Return: AX = status
  1089.         0000h switch is allowed
  1090.         other switch not allowed
  1091. Note:    intercepting this call will allow a DOS application to ensure that
  1092.       Windows will not switch away from it.
  1093. --------b-6F0204-----------------------------
  1094. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE
  1095.     AX = 0204h
  1096.     BP = driver ID (see #03741)
  1097. Return: AH = status (see #03744)
  1098.     DX = device state from Logical Describe Record (see #03749,#03755)
  1099.     BP,DS destroyed
  1100. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra"
  1101.  
  1102. Bitfields for HP Vectra V_HPHIL driver state:
  1103. Bit(s)    Description    (Table 03755)
  1104.  0    link configuration in progress
  1105.  1    reserved
  1106.  2    no devices attached
  1107.  3    general failure
  1108.  4,5    reserved
  1109.  6    HP-HIL driver open
  1110.  7    reserved
  1111.  8    link has been reconfigured
  1112.  9    error during output request
  1113.  10    reserved
  1114.  11    output request complete
  1115.  12    timeout
  1116.  13-15    reserved
  1117. --------b-6F0206-----------------------------
  1118. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION
  1119.     AX = 0206h
  1120.     BP = driver ID (see #03741)
  1121. Return: AH = status (see #03744)
  1122.     BX = driver release date code
  1123.         (BL = BCD years since 1960, BH = BCD week number within year)
  1124.     CX = length of version string
  1125.     ES:DI -> version string
  1126.     BP,DS destroyed
  1127. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208h
  1128. --------b-6F0208-----------------------------
  1129. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR
  1130.     AX = 0208h
  1131.     BP = driver ID (see #03741)
  1132. Return: AH = status (see #03744)
  1133.     BP,DS destroyed
  1134. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020Ch
  1135. --------b-6F020A-----------------------------
  1136. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES
  1137.     AX = 020Ah
  1138.     BP = driver ID (see #03741)
  1139. Return: AH = status (see #03744)
  1140.     BX,CX = current attributes
  1141.     BP,DS destroyed
  1142.     ---for V_LTOUCH, V_LPOINTER---
  1143.         BX = logical width
  1144.         CX = logical height
  1145. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ch
  1146. --------b-6F020C-----------------------------
  1147. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES
  1148.     AX = 020Ch
  1149.     BP = driver ID (see #03741)
  1150.     BX,CX = new attributes
  1151.     ---for V_LTOUCH, V_LPOINTER---
  1152.         BX = new logical width
  1153.         CX = new logical height
  1154. Return: AH = status (see #03744)
  1155.     BP,DS destroyed
  1156. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ah
  1157. --------b-6F020E-----------------------------
  1158. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS
  1159.     AX = 020Eh
  1160.     BP = driver ID (see #03741) for V_HPHIL, others
  1161. Return: AH = status (see #03744)
  1162.     BP,DS destroyed
  1163. Desc:    place device in open state, which allows output to the device
  1164. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210h
  1165. --------b-6F0210-----------------------------
  1166. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER
  1167.     AX = 0210h
  1168.     BP = driver ID (see #03741) for V_HPHIL, others
  1169. Return: AH = status (see #03744)
  1170.     BP,DS destroyed
  1171. Desc:    place device in closed state, which disallows output to the device
  1172. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh
  1173. --------b-6F0212-----------------------------
  1174. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT
  1175.     AX = 0212h
  1176.     BP = driver ID (see #03741)
  1177. Return: AH = status (see #03744)
  1178.     BP,DS destroyed
  1179. Desc:    report to driver that a previously-requested timeout interval has
  1180.       expired
  1181. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216h
  1182. --------b-6F0214-----------------------------
  1183. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED
  1184.     AX = 0214h
  1185.     BP = driver ID (see #03741)
  1186. Return: AH = status (see #03744)
  1187.     BP,DS destroyed
  1188. Desc:    report to driver that a previously-requested 60 Hz interval has
  1189.       expired
  1190. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216h
  1191. --------b-6F0216-----------------------------
  1192. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST
  1193.     AX = 0216h
  1194.     BP = driver ID (see #03741)
  1195. Return: AH = status (see #03744)
  1196.     BP,DS destroyed
  1197.     ---on failure---
  1198.     CX = length of reason string
  1199.     ES:DI -> string describing error
  1200. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214h
  1201. --------N-6F03-------------------------------
  1202. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  1203.     AH = 03h
  1204.     DS:DI -> node ID (optional)
  1205. Return: ES:BX -> configuration table (see #03756)
  1206. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  1207.  
  1208. Format of 10NET configuration table:
  1209. Offset    Size    Description    (Table 03756)
  1210. -41    WORD    local device table address
  1211. -39    WORD    extended network error mapping table address
  1212. -37    WORD    shared device table address
  1213. -35    WORD    mounted device table address
  1214. -33    BYTE    receive buffer counter
  1215. -32    BYTE    collect buffer counter
  1216. -31    WORD    TUF address
  1217. -29    BYTE    enable flag
  1218. -28    BYTE    FCB keep flag
  1219. -27    WORD    reserved
  1220. ---up to here, 10NET v3.3---
  1221. -25    WORD    count of dropped Send6F
  1222. -23    WORD    buffer start address
  1223. -21    WORD    comm driver base address
  1224. -19    WORD    send/receive retry count
  1225. -17    BYTE    number of 550ms loops before timeout
  1226. -16    WORD    UFH address
  1227. -14    WORD    CDIR address
  1228. -12    WORD    LTAB address
  1229. -10    WORD    SFH address
  1230. -8    WORD    FTAB address
  1231. -6    WORD    RLTAB address
  1232. -4    WORD    SMI address
  1233. -2    WORD    NTAB address
  1234.  00h    WORD    address of first CT_DRV
  1235.  02h    BYTE    number of DRV entries
  1236.  03h  8 BYTEs    login name
  1237.  0Bh 12 BYTEs    node ID (blank-padded)
  1238.  17h  6 BYTEs    node address
  1239.  1Dh    BYTE    flag
  1240.  1Eh    BYTE    CT_CFLG (chat permit)
  1241.         bit 1: sound bell
  1242.         bit 0: CHAT permit
  1243.  1Fh    BYTE    CT_PSFLG (see #03757)
  1244.  20h    BYTE    in 10Net flag
  1245.  21h    WORD    receive message count
  1246.  23h    WORD    send message count
  1247.  25h    WORD    retry count
  1248.  27h    WORD    failed count
  1249.  29h    WORD    driver errors
  1250.  2Bh    WORD    dropped responses/CHATs
  1251.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  1252.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  1253.  3Ch    BYTE    active CB channel
  1254.  3Dh    BYTE    received 6F messages on queue
  1255.  3Eh  9 BYTEs    activity counters for channels 1-9
  1256. ---beyond here, 10NET v3.3---
  1257.  47h    BYTE    bit 0: RS232 gate
  1258.         bit 1: Send6F gate (user set)
  1259.  48h    DWORD    pointer into gate (user set)
  1260.  4Ch    DWORD    pointer into 10Net send
  1261.  50h  N WORDs    addresses of timer blocks
  1262.  
  1263. Bitfields for CT_PSFLG:
  1264. Bit(s)    Description    (Table 03757)
  1265.  5    PRINT permit
  1266.  4    KB initiated
  1267.  3    CHAT called FOXPTRM
  1268.  2    SUBMIT active
  1269.  1    SUBMIT received
  1270.  0    SUBMIT permit
  1271. --------N-6F04-------------------------------
  1272. INT 6F - 10NET - SEND
  1273.     AH = 04h
  1274.     DS:BX -> send record (see #03758)
  1275.     DS:DX -> data (max 1024 bytes)
  1276. Return: CF clear if successful
  1277.     CF set on error
  1278.         AX = error code (see #03740)
  1279. SeeAlso: AH=05h"10NET",AH=09h"10NET",AH=0Ah"10NET"
  1280.  
  1281. Format of 10NET send record:
  1282. Offset    Size    Description    (Table 03758)
  1283.  00h 12 BYTEs    receiving node's ID
  1284.         if first byte has high-order bit set, message is directed to
  1285.           the CT_RGATE vector at the receiver
  1286.         if second byte is 00h, first byte is taken as a CB
  1287.           channel number and delivered to all nodes on same channel
  1288.  0Ch    WORD     length of data at DX
  1289. --------b-6F04--BP0012-----------------------
  1290. INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS
  1291.     AH = 04h
  1292.     BP = 0012h (driver ID for V_SYSTEM)
  1293. Return: AH = status (see #03744)
  1294.     ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra")
  1295.     BP,DS destroyed
  1296. SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD"
  1297. --------b-6F04--BP005A-----------------------
  1298. INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS
  1299.     AH = 04h
  1300.     BP = 005Ah (driver ID for V_STRACK)
  1301. Return: AH = status (see #03744)
  1302.     BP,DS destroyed
  1303. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF"
  1304. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1305. --------b-6F0400-----------------------------
  1306. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES
  1307.     AX = 0400h
  1308.     BP = driver ID (see #03741)
  1309.     DH,DL = major,minor address (optional)
  1310. Return: AH = status (see #03744)
  1311.     BP,DS destroyed
  1312. Desc:    reserve specified sub-addresses on an already-allocated driver for
  1313.       exclusive access
  1314. Note:    this function is documented as present but unsupported in the drivers
  1315.       V_LTABLET, V_LPOINTER, and V_LTOUCH
  1316. SeeAlso: AX=0200h"HP Vectra",AX=0402h"SF_UNLOCK"
  1317. --------b-6F0400BP001E-----------------------
  1318. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT
  1319.     AX = 0400h
  1320.     BP = 001Eh (driver ID for V_S8259)
  1321. Return: AH = status (see #03744)
  1322.     BP,DS destroyed
  1323. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  1324. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  1325. --------b-6F0400BP002A-----------------------
  1326. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS
  1327.     AX = 0400h
  1328.     BP = 002Ah (driver ID for V_SINPUT)
  1329. Return: AH = status (see #03744)
  1330.     BP,DS destroyed
  1331. Desc:    set the parent vectors in the physical device driver headers to their
  1332.       system defaults
  1333. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah
  1334. SeeAlso: AH=06h"F_INQUIRE"
  1335. --------b-6F0400BP0054-----------------------
  1336. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
  1337.     AX = 0400h
  1338.     BP = 0054h (driver ID for V_SVIDEO)
  1339.     ???
  1340. Return: AH = status (see #03744)
  1341.     BX = 4850h ('BP')
  1342.     BP,DS destroyed
  1343.     ???
  1344. Note:    only partially documented
  1345. SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  1346. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1347. --------b-6F0400BP00CC-----------------------
  1348. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER
  1349.     AX = 0400h
  1350.     BP = 00CCh (driver ID for V_LHPMOUSE)
  1351. Return: AH = status (see #03744)
  1352.     BP,DS destroyed
  1353. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CCh
  1354. --------b-6F0402-----------------------------
  1355. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES
  1356.     AX = 0402h
  1357.     BP = driver ID (see #03741)
  1358.     DH,DL = major,minor address (optional)
  1359. Return: AH = status (see #03744)
  1360.     BP,DS destroyed
  1361. Desc:    release specified sub-addresses from exclusive access
  1362. Note:    this function is documented as present but unsupported in the drivers
  1363.       V_LTABLET, V_LPOINTER, and VLTOUCH
  1364. SeeAlso: AX=0200h"HP Vectra",AX=0400h"SF_LOCK"
  1365. --------b-6F0402BP001E-----------------------
  1366. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT
  1367.     AX = 0402h
  1368.     BP = 001Eh (driver ID for V_S8259)
  1369. Return: AH = status (see #03744)
  1370.     BP,DS destroyed
  1371. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh
  1372. SeeAlso: AX=040Ah/BP=001Eh
  1373. --------b-6F0402BP002A-----------------------
  1374. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS
  1375.     AX = 0402h
  1376.     BP = 002Ah (driver ID for V_SINPUT)
  1377.     ES:SI -> buffer for link table (see #03759)
  1378. Return: AH = status (see #03744)
  1379.     ES:SI buffer filled
  1380.     BP,DS destroyed
  1381. Desc:    get the parent and child vectors for the seven supported physical
  1382.       device drivers
  1383. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS"
  1384. SeeAlso: AH=06h"F_INQUIRE"
  1385.  
  1386. Format of HP Vectra EX-BIOS driver link table:
  1387. Offset    Size    Description    (Table 03759)
  1388.  00h    BYTE    vector number of HP-HIL device #1's child
  1389.  01h    BYTE    vector number of HP-HIL device #1's parent
  1390.     ...
  1391.  0Ch    BYTE    vector number of HP-HIL device #7's child
  1392.  0Dh    BYTE    vector number of HP-HIL device #7's parent
  1393. --------b-6F0402BP0054-----------------------
  1394. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO
  1395.     AX = 0402h
  1396.     BP = 0054h (driver ID for V_SVIDEO)
  1397.     ???
  1398. Return: AH = status (see #03744)
  1399.     BP,DS destroyed
  1400.     ???
  1401. Note:    only partially documented
  1402. SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  1403. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1404. --------b-6F0402BP00CC-----------------------
  1405. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT
  1406.     AX = 0402h
  1407.     BP = 00CCh (driver ID for V_LHPMOUSE)
  1408. Return: AH = status (see #03744)
  1409.     BP,DS destroyed
  1410. Desc:    set up INT 33 even if no mouse is installed
  1411. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CCh
  1412. --------b-6F0404-----------------------------
  1413. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON
  1414.     AX = 0404h
  1415.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1416. Return: AH = status (see #03744)
  1417.     BP,DS destroyed
  1418. Desc:    enables graphics cursor tracking of the logical device's movement
  1419. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF"
  1420. --------b-6F0404BP001E-----------------------
  1421. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT
  1422.     AX = 0404h
  1423.     BP = 001Eh (driver ID for V_S8259)
  1424. Return: AH = status (see #03744)
  1425.     BP,DS destroyed
  1426. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD"
  1427. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  1428. --------b-6F0404BP002A-----------------------
  1429. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS
  1430.     AX = 0404h
  1431.     BP = 002Ah (driver ID for V_SINPUT)
  1432.     ES:SI -> buffer containing link table (see #03759)
  1433. Return: AH = status (see #03744)
  1434.     BP,DS destroyed
  1435. Desc:    specify the parent and child vectors for the seven supported physical
  1436.       device drivers
  1437. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS"
  1438. SeeAlso: AH=06h"F_INQUIRE"
  1439. --------b-6F0404BP0054-----------------------
  1440. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO
  1441.     AX = 0404h
  1442.     BP = 0054h (driver ID for V_SVIDEO)
  1443.     ???
  1444. Return: AH = status (see #03744)
  1445.     BP,DS destroyed
  1446.     ???
  1447. Note:    only partially documented
  1448. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h
  1449. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1450. --------b-6F0406-----------------------------
  1451. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF
  1452.     AX = 0406h
  1453.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1454. Return: AH = status (see #03744)
  1455.     BP,DS destroyed
  1456. Desc:    disables graphics cursor tracking of the logical device's movement
  1457. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0404h"SF_TRACK_ON"
  1458. SeeAlso: AX=0408h"SF_CREATE_EVENT"
  1459. --------b-6F0406BP001E-----------------------
  1460. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT
  1461.     AX = 0406h
  1462.     BP = 001Eh (driver ID for V_S8259)
  1463. Return: AH = status (see #03744)
  1464.     BP,DS destroyed
  1465. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  1466. SeeAlso: AX=040Ah"SF_DISABLE_HPHIL"
  1467. --------b-6F0406BP0054-----------------------
  1468. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG
  1469.     AX = 0406h
  1470.     BP = 0054h (driver ID for V_SVIDEO)
  1471.     ???
  1472. Return: AH = status (see #03744)
  1473.     BP,DS destroyed
  1474.     ???
  1475. Note:    only partially documented
  1476. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1477. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1478. --------b-6F0406BP0114-----------------------
  1479. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK
  1480.     AX = 0406h
  1481.     BP = 0114h (driver ID for V_HPHIL)
  1482. Return: AH = status (see #03744)
  1483.     BP,DS destroyed
  1484. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS"
  1485. SeeAlso: AX=0410h"SF_CRV_SELF_TEST"
  1486. --------b-6F0408-----------------------------
  1487. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER
  1488.     AX = 0408h
  1489.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1490.     ES:SI -> new event handler (see AH=00h"HP Vectra")
  1491.     DX = new handler's DS
  1492. Return: AH = status (see #03744)
  1493.     ES:SI -> old event handler
  1494.     DX = old handler's DS
  1495.     BP,DS destroyed
  1496. Desc:    specify routine to be called on logical device events
  1497. Note:    when events occur, the event handler is called with the same registers
  1498.       as the "F_ISR" function on AH=00h"HP Vectra"
  1499. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF"
  1500. SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE"
  1501. --------b-6F0408BP001E-----------------------
  1502. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT
  1503.     AX = 0408h
  1504.     BP = 001Eh (driver ID for V_S8259)
  1505. Return: AH = status (see #03744)
  1506.     BP,DS destroyed
  1507. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh
  1508. SeeAlso: AX=040Ah/BP=001Eh
  1509. --------b-6F0408BP0054-----------------------
  1510. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN
  1511.     AX = 0408h
  1512.     BP = 0054h (driver ID for V_SVIDEO)
  1513.     ???
  1514. Return: AH = status (see #03744)
  1515.     BP,DS destroyed
  1516.     ???
  1517. Note:    only partially documented
  1518. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1519. SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054h
  1520. --------b-6F0408BP0114-----------------------
  1521. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT
  1522.     AX = 0408h
  1523.     BP = 0114h (driver ID for V_HPHIL)
  1524.     BX = device address indicator (see #03760)
  1525.     DH = HP HIL device major address
  1526.     DL = prompt number
  1527. Return: AH = status (see #03744)
  1528.     BP,DS destroyed
  1529. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h
  1530.  
  1531. Bitfields for HP Vectra V_HPHIL device address indicator:
  1532. Bit(s)    Description    (Table 03760)
  1533.  15-14    reserved
  1534.  13    address in DH is valid (must be set, clear is reserved)
  1535.  12    valid value in DL
  1536.  11-0    reserved
  1537. --------b-6F040A-----------------------------
  1538. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER
  1539.     AX = 040Ah
  1540.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1541. Return: AH = status (see #03744)
  1542.     BP,DS destroyed
  1543. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF"
  1544. SeeAlso: AX=040Eh"SF_CLIPPING_ON"
  1545. --------b-6F040ABP001E-----------------------
  1546. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT
  1547.     AX = 040Ah
  1548.     BP = 001Eh (driver ID for V_S8259)
  1549. Return: AH = status (see #03744)
  1550.     BP,DS destroyed
  1551. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh
  1552. SeeAlso: AX=0408h/BP=001Eh
  1553. --------b-6F040ABP0054-----------------------
  1554. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE
  1555.     AX = 040Ah
  1556.     BP = 0054h (driver ID for V_SVIDEO)
  1557.     ???
  1558. Return: AH = status (see #03744)
  1559.     BP,DS destroyed
  1560.     ???
  1561. Note:    only partially documented
  1562. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1563. SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054h
  1564. --------b-6F040ABP00AE-----------------------
  1565. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY
  1566.     AX = 040Ah
  1567.     BP = 00AEh (driver ID for V_8041)
  1568.     BH = vector number of driver to be called regularly (vector addr / 6)
  1569. Return: AH = status (see #03744)
  1570.     BP,DS destroyed
  1571. Desc:    add a driver to the list (max eight) of drivers which will be called
  1572.       by the HP's 8041 at 60 Hz
  1573. Note:    the newly added entry will not be called until enabled with
  1574.       AX=040Eh/BP=00AEh
  1575. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1576. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1577. --------b-6F040ABP0114-----------------------
  1578. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE
  1579.     AX = 040Ah
  1580.     BP = 0114h (driver ID for V_HPHIL)
  1581.     BX = device address indicator (see #03760)
  1582.     DH = HP HIL device major address
  1583.     DL = acknowledge number (specific if 01h-07h, generic otherwise)
  1584. Return: AH = status (see #03744)
  1585.     BP,DS destroyed
  1586. SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114h
  1587. --------b-6F040C-----------------------------
  1588. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER
  1589.     AX = 040Ch
  1590.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1591. Return: AH = status (see #03744)
  1592.     BP,DS destroyed
  1593. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON"
  1594. --------b-6F040CBP00AE-----------------------
  1595. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY
  1596.     AX = 040Ch
  1597.     BP = 00AEh (driver ID for V_8041)
  1598.     BH = vector number of driver to be removed (vector addr / 6)
  1599. Return: AH = status (see #03744)
  1600.     BP,DS destroyed
  1601. Desc:    remove a driver to the list (max eight) of drivers which will be called
  1602.       by the HP's 8041 at 60 Hz
  1603. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1604. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1605. --------b-6F040CBP0114-----------------------
  1606. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE
  1607.     AX = 040Ch
  1608.     BP = 0114h (driver ID for V_HPHIL)
  1609.     BX = device address indicator (see #03760)
  1610.     DH = HP HIL device major address
  1611.     DL = repeat rate (00h = 30 Hz, 01h = 60 Hz)
  1612. Return: AH = status (see #03744)
  1613.     BP,DS destroyed
  1614. Note:    this function is only available if the driver is in the open state
  1615.       (see AX=020Eh"SF_OPEN")
  1616. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114h
  1617. --------b-6F040E-----------------------------
  1618. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING
  1619.     AX = 040Eh
  1620.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1621. Return: AH = status (see #03744)
  1622.     BP,DS destroyed
  1623. Desc:    causes the physical device's motion to be clipped to prevent overflow
  1624.       or underflow of the logical position
  1625. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF"
  1626. --------b-6F040EBP00AE-----------------------
  1627. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE
  1628.     AX = 040Eh
  1629.     BP = 00AEh (driver ID for V_8041)
  1630.     BH = vector number of driver to be called regularly (vector addr / 6)
  1631. Return: AH = status (see #03744)
  1632.     BP,DS destroyed
  1633. Desc:    enable 60 Hz calling of a driver previously added to the list of
  1634.       drivers to be called by the HP's 8041
  1635. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1636. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1637. --------b-6F040EBP0114-----------------------
  1638. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF
  1639.     AX = 040Eh
  1640.     BP = 0114h (driver ID for V_HPHIL)
  1641.     BX = device address indicator (see #03760)
  1642.     DH = HP HIL device major address
  1643. Return: AH = status (see #03744)
  1644.     BP,DS destroyed
  1645. Note:    this function is only available if the driver is in the open state
  1646.       (see AX=020Eh"SF_OPEN")
  1647. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h
  1648. SeeAlso: AX=0416h/BP=0114h
  1649. --------b-6F0410-----------------------------
  1650. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING
  1651.     AX = 0410h
  1652.     BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1653. Return: AH = status (see #03744)
  1654.     BP,DS destroyed
  1655. Desc:    disables clipping of the physical device's motion, which may cause
  1656.       overflow or underflow of the logical position
  1657. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1658. --------b-6F0410BP00AE-----------------------
  1659. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE
  1660.     AX = 0410h
  1661.     BP = 00AEh (driver ID for V_8041)
  1662.     BH = vector number of driver (vector addr / 6)
  1663. Return: AH = status (see #03744)
  1664.     BP,DS destroyed
  1665. Desc:    disable 60 Hz interval calls to the specified driver
  1666. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1667. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1668. --------b-6F0410BP0114-----------------------
  1669. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST
  1670.     AX = 0410h
  1671.     BP = 0114h (driver ID for V_HPHIL)
  1672.     BX = device address indicator (see #03760)
  1673.     DH = HP HIL device major address
  1674.     ES:SI -> buffer for result
  1675. Return: AH = status (see #03744)
  1676.     CX = number of bytes in buffer
  1677.     BP,DS destroyed
  1678. Note:    this function is only available if the driver is in the open state
  1679.       (see AX=020Eh"SF_OPEN")
  1680. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114h
  1681. --------b-6F0412BP00AE-----------------------
  1682. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041
  1683.     AX = 0412h
  1684.     BP = 00AEh (driver ID for V_8041)
  1685. Return: AH = status (see #03744)
  1686.     BP,DS destroyed
  1687. Desc:    sets a flag in the 8041 indicating that a second 256K bank of RAM
  1688.       on the motherboard is enabled
  1689. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1690. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1691. --------b-6F0412BP0114-----------------------
  1692. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS
  1693.     AX = 0412h
  1694.     BP = 0114h (driver ID for V_HPHIL)
  1695.     BX = device address indicator (see #03760)
  1696.     DH = HP HIL device major address
  1697.     ES:SI -> 15-byte buffer for status
  1698. Return: AH = status (see #03744)
  1699.     CX = number of bytes returned in buffer
  1700.     BP,DS destroyed
  1701. Note:    this function is only available if the driver is in the open state
  1702.       (see AX=020Eh"SF_OPEN")
  1703. SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114h
  1704. --------b-6F0414BP00AE-----------------------
  1705. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH
  1706.     AX = 0414h
  1707.     BP = 00AEh (driver ID for V_8041)
  1708. Return: AH = status (see #03744)
  1709.     BP,DS destroyed
  1710. Desc:    clears a flag in the 8041 indicating that a second 256K bank of RAM
  1711.       on the motherboard is enabled, causing the second bank to be disabled
  1712. Note:    this function should normally never be called
  1713. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1714. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1715. --------b-6F0414BP0114-----------------------
  1716. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME
  1717.     AX = 0414h
  1718.     BP = 0114h (driver ID for V_HPHIL)
  1719.     BX = device address indicator (see #03760)
  1720.     DH = HP HIL device major address
  1721.     ES:SI -> 15-byte buffer for name
  1722. Return: AH = status (see #03744)
  1723.     CX = number of bytes returned in buffer
  1724.     BP,DS destroyed
  1725. Note:    this function is only available if the driver is in the open state
  1726.       (see AX=020Eh"SF_OPEN")
  1727. SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114h
  1728. --------b-6F0416BP00AE-----------------------
  1729. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE
  1730.     AX = 0416h
  1731.     BP = 00AEh (driver ID for V_8041)
  1732. Return: AH = status (see #03744)
  1733.     BP,DS destroyed
  1734. Desc:    sets a flag in the 8041 indicating that the primary display is the
  1735.       Multimode graphics adapter (default)
  1736. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1737. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1738. --------b-6F0416BP0114-----------------------
  1739. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC
  1740.     AX = 0416h
  1741.     BP = 0114h (driver ID for V_HPHIL)
  1742.     BH = what to set (00h typematic rate, 01h delay, 02h both)
  1743.     BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only)
  1744.     DL = rate
  1745.         bits 7-4: delay value
  1746.         bits 3-0: typematic rate
  1747. Return: AH = status (see #03744)
  1748.     BP,DS destroyed
  1749. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114h
  1750. --------b-6F0418BP00AE-----------------------
  1751. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME
  1752.     AX = 0418h
  1753.     BP = 00AEh (driver ID for V_8041)
  1754. Return: AH = status (see #03744)
  1755.     BP,DS destroyed
  1756. Desc:    clears a flag in the 8041, indicating that the primary display is the
  1757.       monochrome adapter
  1758. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1759. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1760. --------b-6F0418BP0114-----------------------
  1761. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS
  1762.     AX = 0418h
  1763.     BP = 0114h (driver ID for V_HPHIL)
  1764.     BL = new LED states
  1765.         bit 0: scroll lock
  1766.         bit 1: NumLock
  1767.         bit 2: CapsLock
  1768. Return: AH = status (see #03744)
  1769.     BP,DS destroyed
  1770. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114h
  1771. --------b-6F041ABP00AE-----------------------
  1772. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041
  1773.     AX = 041Ah
  1774.     BP = 00AEh (driver ID for V_8041)
  1775.     BL = byte to send to 8041
  1776. Return: AH = status (see #03744)
  1777.     BP,DS destroyed
  1778. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEh
  1779. --------N-6F05-------------------------------
  1780. INT 6F - 10NET - RECEIVE
  1781.     AH = 05h
  1782.     CX = number of seconds before timeout
  1783.     DS:DX -> receive buffer (see #03761)
  1784. Return: CF clear if successful
  1785.         AH = FEh if dequeued message is a CB message
  1786.     CF set on error
  1787.         AX = error code (see #03740)
  1788. SeeAlso: AH=04h"10NET"
  1789.  
  1790. Format of 10NET receive buffer:
  1791. Offset    Size    Description    (Table 03761)
  1792.  00h 12 BYTEs    sending node's ID
  1793.  0Ch    WORD    length of message
  1794.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1795. --------b-6F06-------------------------------
  1796. INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE
  1797.     AH = 06h
  1798.     BP = driver ID (see #03741) for V_HPHIL, others
  1799.     AL = value to output
  1800.     ---if driver is V_HPHIL---
  1801.     BX = device address indicator (see #03760)
  1802.     DH = HP HIL device major address
  1803.     DL = HP-HIL device register (00h-7Fh)
  1804. Return: AH = status (see #03744)
  1805.     BP,DS destroyed
  1806. Desc:    output a byte to a specific HP-HIL device register
  1807. Note:    this function is only available if the driver is in the open state
  1808.       (see AX=020Eh"SF_OPEN")
  1809. SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER"
  1810. --------b-6F06-------------------------------
  1811. INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION
  1812.     AH = 06h
  1813.     BP = driver ID (see #03741) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc.
  1814. Return: AH = status (see #03744)
  1815.     BX = current logical X position
  1816.     CX = current logical Y position
  1817.     DL = button transitions (bit N = button N state has changed)
  1818.     DH = current button states (bit N = current button N state)
  1819.     ES:0000h -> logical device's Describe Record (see #03749)
  1820.     BP,DS destroyed
  1821. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1822. --------b-6F06--BP0012-----------------------
  1823. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR
  1824.     AH = 06h
  1825.     BP = 0012h (driver ID for V_SYSTEM)
  1826.     BX = vector address
  1827.     DX = new value for DS
  1828.     ES:DI -> new CS:IP entry point
  1829. Return: AH = status (see #03744)
  1830.     DX = old value for DS
  1831.     ES:DI -> old CS:IP entry point
  1832.     BP,DS destroyed
  1833. Desc:    replace an existing EX-BIOS driver at a fixed HPVT location without
  1834.       initialization
  1835. SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD"
  1836. SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS"
  1837. --------b-6F06--BP002A-----------------------
  1838. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD
  1839.     AH = 06h
  1840.     BP = 002Ah (driver ID for V_SINPUT)
  1841.     AL = HP-HIL physical device number (01h-07h)
  1842. Return: AH = status (see #03744)
  1843.     ES:SI -> physical describe record for driver
  1844.     BP,DS destroyed
  1845. Note:    the returned physical describe record must not be modified
  1846. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah
  1847. SeeAlso: AH=0Ch/BP=002Ah
  1848. --------b-6F06--BP005A-----------------------
  1849. INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING
  1850.     AH = 06h
  1851.     BP = 005Ah (driver ID for V_STRACK)
  1852. Return: AH = status (see #03744)
  1853.     BP,DS destroyed
  1854. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1855. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1856. --------N-6F07-------------------------------
  1857. INT 6F - 10NET - LOCK HANDLE
  1858.     AH = 07h
  1859.     BX = file handle
  1860.     CX:DX = starting offset in file
  1861.     SI = record length
  1862. Return: CF clear if successful
  1863.     CF set on error
  1864.         AX = error code (see also AH=00h)
  1865.         0002h file not found
  1866. SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5Ch
  1867. --------N-6F08-------------------------------
  1868. INT 6F - 10NET - UNLOCK HANDLE
  1869.     AH = 08h
  1870.     BX = file handle
  1871.     AL = mode
  1872.         00h unlock all
  1873.         01h unlock record at CX:DX
  1874. Return: CF clear if successful
  1875.     CF set on error
  1876.         AX = error code (see also AH=00h)
  1877.         0002h file not found
  1878. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1879. --------b-6F08-------------------------------
  1880. INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE
  1881.     AH = 08h
  1882.     BP = driver ID (see #03741) for V_HPHIL (0114h), others
  1883.     ---if device is V_HPHIL---
  1884.     BX = device address indicator (see #03760)
  1885.     DH = HP HIL device major address
  1886.     DL = HP-HIL device register (00h-7Fh)
  1887. Return: AH = status (see #03744)
  1888.     AL = value read from device
  1889.     BP,DS destroyed
  1890. Desc:    generic read-byte function; for driver V_HPHIL, retrieves the value
  1891.       of a specific HP-HIL device register
  1892. Note:    this function is only available if the driver is in the open state
  1893.       (see AX=020Eh"SF_OPEN")
  1894. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1895. --------b-6F08--BP0012-----------------------
  1896. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR
  1897.     AH = 08h
  1898.     BP = 0012h (driver ID for V_SYSTEM)
  1899.     DX = new value for DS
  1900.     ES:DI -> new CS:IP entry point
  1901. Return: AH = status (00h,F6h) (see also #03744)
  1902.         00h successful
  1903.         BX = vector address used
  1904.         DX = old value for DS
  1905.         ES:DI -> old CS:IP entry point
  1906.     BP,DS destroyed
  1907. Desc:    exchange the supplied entry point and DS with the values in the next
  1908.       reserved entry in the HP_VECTOR_TABLE
  1909. Note:    returns AH=F6h if no more reserved vectors are available
  1910. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h
  1911. SeeAlso: AH=0Ch/BP=0012h
  1912. --------b-6F08--BP002A-----------------------
  1913. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE
  1914.     AH = 08h
  1915.     BP = 002Ah (driver ID for V_SINPUT)
  1916.     ES:SI -> buffer for device status table (see #03762)
  1917. Return: AH = status (see #03744)
  1918.     ES:SI buffer filled
  1919.     BP,DS destroyed
  1920. Note:    the returned physical describe record must not be modified
  1921. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah
  1922. SeeAlso: AH=0Ch/BP=002Ah
  1923.  
  1924. Format of HP Vectra HP-HIL physical device status table:
  1925. Offset    Size    Description    (Table 03762)
  1926.  00h    BYTE    status for HP-HIL device #1
  1927.         bit 0: device present
  1928.         bits 7-2 reserved
  1929.  01h    BYTE    device ID for HP-HIL device #1
  1930.     ...
  1931.  0Ch    BYTE    status for HP-HIL device #7
  1932.  0Dh    BYTE    device ID for HP-HIL device #7
  1933. --------b-6F08--BP005A-----------------------
  1934. INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING
  1935.     AH = 08h
  1936.     BP = 005Ah (driver ID for V_STRACK)
  1937. Return: AH = status (see #03744)
  1938.     BP,DS destroyed
  1939. Note:    also removes the graphics cursor sprite from the screen
  1940. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON"
  1941. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1942. --------N-6F09-------------------------------
  1943. INT 6F - 10NET - SUBMIT
  1944.     AH = 09h
  1945.     DS:BX -> submit record (see #03763)
  1946. SeeAlso: AH=04h"10NET"
  1947.  
  1948. Format of 10NET submit record:
  1949. Offset    Size    Description    (Table 03763)
  1950.  00h 12 BYTEs    destination node ID (must be logged in)
  1951.  0Ch    WORD    length+2 of following 'command line' text
  1952.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1953. --------N-6F0A-------------------------------
  1954. INT 6F - 10NET - CHAT
  1955.     AH = 0Ah
  1956.     DS:BX -> control parameters (see #03764)
  1957.     DS:DX -> chat message (see #03765)
  1958. SeeAlso: AH=04h"10NET",AH=8Ah
  1959.  
  1960. Format of 10NET chat control parameters:
  1961. Offset    Size    Description    (Table 03764)
  1962.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1963.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1964.  10h 12 BYTEs    destination node ID
  1965.  
  1966. Format of 10NET chat message:
  1967. Offset    Size    Description    (Table 03765)
  1968.  00h    WORD    length+2 of following text
  1969.  02h  N BYTEs    text, max 101 bytes
  1970. --------b-6F0A-------------------------------
  1971. INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE
  1972.     AH = 0Ah
  1973.     BP = driver ID (see #03741) for V_HPHIL (0114h), others
  1974.     CX = number of bytes to write
  1975.     ES:DI -> buffer containing data
  1976.     ---if driver is V_HPHIL---
  1977.     BX = device address indicator (see #03760)
  1978.     DH = HP HIL device major address
  1979.     DL = HP-HIL device register (00h-7Fh)
  1980. Return: AH = status (see #03744)
  1981.     CX = number of unwritten bytes left in buffer
  1982.     BP,DS destroyed
  1983. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1984. SeeAlso: AH=0Eh"F_PUT_WORD"
  1985. --------b-6F0A-------------------------------
  1986. INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE
  1987.     AH = 0Ah
  1988.     BP = driver ID (see #03741) for block device
  1989.     DH = device major number
  1990.     DL = device minor number
  1991.     ES:DI -> command block (see #03766)
  1992. Return: AH = status (see #03744)
  1993.     BX = operation status
  1994.     BP,DS destroyed
  1995. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1996. SeeAlso: AH=0Eh"F_PUT_WORD"
  1997.  
  1998. Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block:
  1999. Offset    Size    Description    (Table 03766)
  2000.  00h    DWORD    data transfer address
  2001.  04h    WORD    number of blocks
  2002.  06h    DWORD    block address (some devices only use low word)
  2003. --------b-6F0A--BP0012-----------------------
  2004. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR
  2005.     AH = 0Ah
  2006.     BP = 0012h (driver ID for V_SYSTEM)
  2007.     DX = new value for DS
  2008.     ES:DI -> new CS:IP entry point
  2009. Return: AH = status (00h,F6h) (see also #03744)
  2010.         00h successful
  2011.         BX = vector address used
  2012.         DX = old value for DS
  2013.         ES:DI -> old CS:IP entry point
  2014.     BP,DS destroyed
  2015. Desc:    exchange the supplied entry point and DS with the values in the next
  2016.       free entry in the HP_VECTOR_TABLE
  2017. Note:    returns AH=F6h if no more reserved vectors are available
  2018. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  2019. SeeAlso: AH=0Ch/BP=0012h
  2020. --------b-6F0A--BP002A-----------------------
  2021. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR
  2022.     AH = 0Ah
  2023.     BP = 002Ah (driver ID for V_SINPUT)
  2024. Return: AH = status (see #03744)
  2025.     BX = vector address for first HP-HIL device
  2026.     BP,DS destroyed
  2027. Note:    all seven HP-HIL devices use consecutive vectors in the
  2028.       HP_VECTOR_TABLE
  2029. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  2030. SeeAlso: AH=0Ch/BP=002Ah
  2031. --------b-6F0A--BP005A-----------------------
  2032. INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS
  2033.     AH = 0Ah
  2034.     BP = 005Ah (driver ID for V_STRACK)
  2035.     BH = width of save area in bytes
  2036.     BL = hot-spot X coordinate
  2037.     CH = height in scan lines
  2038.     CL = hot-spot Y coordinate
  2039.     ES:SI -> sprite mask (screen mask followed by XOR sprite mask)
  2040. Return: AH = status (see #03744)
  2041.     BP,DS destroyed
  2042. Note:    the save area is one byte wider than the actual sprite mask; the total
  2043.       size of the sprite is at most 144 bytes
  2044. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  2045. SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE"
  2046. --------N-6F0B-------------------------------
  2047. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  2048.     AH = 0Bh
  2049.     AL = drive number or 0
  2050.     ES:SI = Ethernet address or 0
  2051.     DS:BX -> 31-byte ASCIZ semaphore name
  2052. Return: AL = status (see #03767)
  2053. Note:    same as INT 60/AH=12h
  2054. SeeAlso: AH=0Ch"10NET",INT 60/AH=12h
  2055.  
  2056. (Table 03767)
  2057. Values for 10NET status:
  2058.  00h    successful
  2059.  01h    semaphore currently locked
  2060.  02h    server not responding
  2061.  03h    invalid semaphore name
  2062.  04h    semaphore list is full
  2063.  05h    invalid drive ID
  2064.  06h    invalid Ethernet address
  2065.  07h    not logged in
  2066.  08h    write to network failed
  2067.  09h    semaphore already logged in this CPU
  2068. SeeAlso: #03740
  2069. Index:    error codes;10-Net|10-Net;error codes
  2070. --------N-6F0C-------------------------------
  2071. INT 6F - 10NET - UNLOCK SEMAPHORE
  2072.     AH = 0Ch
  2073.     AL = drive number or 0
  2074.     ES:SI = Ethernet address or 0
  2075.     DS:BX -> 31-byte ASCIZ semaphore name
  2076. Return: AL = status (see also #03767)
  2077.         01h semaphore not locked
  2078. Note:    same as INT 60/AH=13h
  2079. SeeAlso: AH=0Bh,INT 60/AH=13h
  2080. --------b-6F0C-------------------------------
  2081. INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE
  2082.     AH = 0Ch
  2083.     BP = driver ID (see #03741) for V_HPHIL (0114h), others
  2084.     CX = number of bytes or blocks to read
  2085.     DS:SI -> buffer for received data
  2086. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2087.     BP,DS destroyed
  2088. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK"
  2089. SeeAlso: AH=10h"F_GET_WORD"
  2090. --------b-6F0C-------------------------------
  2091. INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE
  2092.     AH = 0Ch
  2093.     BP = driver ID (see #03741)
  2094.     DH = device major number
  2095.     DL = device minor number
  2096.     ES:DI -> command block (see #03766)
  2097. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2098.     BX = operation status
  2099.     BP,DS destroyed
  2100. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  2101. SeeAlso: AH=10h"F_GET_WORD"
  2102. --------b-6F0C--BP0012-----------------------
  2103. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR
  2104.     AH = 0Ch
  2105.     BP = 0012h (driver ID for V_SYSTEM)
  2106.     BX = vector address used
  2107.     ES:DI -> new CS:IP entry point
  2108. Return: AH = status (00h) (see #03744)
  2109.     BP,DS destroyed
  2110. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2111.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  2112.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  2113.       self-test sequence will be called.
  2114. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  2115. SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012h
  2116. --------b-6F0C--BP002A-----------------------
  2117. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT
  2118.     AH = 0Ch
  2119.     BP = 002Ah (driver ID for V_SINPUT)
  2120. Return: AH = status (see #03744)
  2121.     ES:BX -> physical GID driver CS:IP
  2122.     BP,DS destroyed
  2123. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  2124. SeeAlso: AH=0Ah/BP=002Ah
  2125. --------b-6F0C--BP005A-----------------------
  2126. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS
  2127.     AH = 0Ch
  2128.     BP = 005Ah (driver ID for V_STRACK)
  2129.     CX = minimum X coordinate
  2130.     DX = maximum X coordinate
  2131. Return: AH = status (see #03744)
  2132.     BP,DS destroyed
  2133. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah
  2134. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007h
  2135. --------N-6F0D-------------------------------
  2136. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  2137.     AH = 0Dh
  2138.     AL = type code
  2139.         01h return superstations only
  2140.         02h return non-superstations only
  2141.         otherwise return all
  2142.     CX = length of data buffer
  2143.     DS:DX -> array of records to be filled (see #03768)
  2144. Return: CL = number of records returned (responding stations)
  2145. SeeAlso: AH=16h,AH=8Dh
  2146.  
  2147. Format of station record:
  2148. Offset    Size    Description    (Table 03768)
  2149.  00h 12 BYTEs    node ID
  2150.  0Ch    BYTE    station flags (see #03769)
  2151. ---if AL = 01h---
  2152.  0Dh    BYTE    version number
  2153.  0Eh    WORD    level number of 10Net software in responding node
  2154. ---if AL = 02h---
  2155.  0Dh  8 BYTEs    user ID
  2156.  15h    BYTE    version number
  2157.  16h    WORD    level number
  2158.  
  2159. Bitfields for station flags:
  2160. Bit(s)    Description    (Table 03769)
  2161.  1    workstation
  2162.  2    superstation
  2163.  3    xgate
  2164.  4    active gate
  2165. --------N-6F0E-------------------------------
  2166. INT 6F - 10NET - SPOOL/PRINT
  2167.     AH = 0Eh
  2168.     DS:DX -> spool/print record (see #03771)
  2169. Return: CF clear if successful
  2170.     CF set on error
  2171.         AX = error code (see also #03740)
  2172.         17FFh device not mounted
  2173.         18FFh already spooling to named device
  2174.  
  2175. (Table 03770)
  2176. Values for 10NET spooler operation code:
  2177.  0000h    initiate spool
  2178.  0001h    abort print
  2179.  0002h    close spool
  2180.  0003h    delete spool
  2181.  0004h    print
  2182.  0005h    get report info
  2183.  0006h    set chat template
  2184.  0007h    queue
  2185.  0008h    return queue
  2186.  0009h    queue non-spooled file for printing
  2187.  
  2188. Format of 10NET Spool/Print record:
  2189. Offset    Size    Description    (Table 03771)
  2190.  00h    WORD    operation code (see #03770)
  2191.  02h 11 BYTEs    file name in FCB format
  2192. ---if operation code = 00h or 06h---
  2193.  0Dh    BYTE    notification flags (see #03772)
  2194.  0Eh    BYTE    days to keep (FFh=forever)
  2195.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  2196.         bits 4-7: remote drive to store spool file (1=A,...)
  2197.  10h    WORD    length of following data area
  2198.  12h  N BYTEs    up to 64 bytes of description
  2199. ---if operation code = 03h---
  2200.  0Dh  8 BYTEs    user ID to associate with filename
  2201. ---if operation code = 04h---
  2202.  0Dh    WORD    block number
  2203.  0Fh  8 BYTEs    user ID to associate with filename
  2204. ---if operation code = 05h---
  2205.  0Dh    BYTE    RRN to start retrieve
  2206.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  2207.         bit 3: if set, return entries for all users
  2208.  0Fh    WORD    length of following area
  2209.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  2210. ---if operation code = 07h---
  2211.  0Dh    BYTE    queue number
  2212.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  2213.  0Fh    WORD    number of bytes of test print to be done
  2214.  11h    BYTE    code:
  2215.         01h print device
  2216.         02h test print count
  2217.         03h prn
  2218. ---if operation code = 08h---
  2219.  0Dh    BYTE    queue location or $SCNTL location to start access
  2220.         returns next item for access:
  2221.             00h-7Fh queued items
  2222.             80h-FEh non-queued, non-printed items
  2223.             FFh    no more items
  2224.  0Eh    WORD    unused
  2225.  10h    WORD    length of following area
  2226.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records (see #03773)
  2227. ---if operation code = 09h---
  2228.  0Dh  3 BYTEs    unused
  2229.  10h  N BYTEs    path to non-spooled file to be queued for printing
  2230.  
  2231. Bitfields for notification flags:
  2232. Bit(s)    Description    (Table 03772)
  2233.  7    queue to top
  2234.  6    do ID page
  2235.  5    no form feed
  2236.  4    reserved
  2237.  3    explicit queuing only
  2238.  2    notify at print completion
  2239.  1    notify server operator, with reply
  2240.  0    notify at print start
  2241.  
  2242. Format of 10NET $SCNTL record:
  2243. Offset    Size    Description    (Table 03773)
  2244.  00h  8 BYTEs    user ID
  2245.  08h 11 BYTEs    filename in FCB format
  2246.  13h  6 BYTEs    node ID
  2247.  19h  3 BYTEs    creation date
  2248.  1Ch    BYTE    notification flags (see #03772)
  2249.  1Dh    BYTE    retention time in days
  2250.  1Eh    BYTE    printing device (LPTx)
  2251.  1Fh  3 BYTEs    date last printed (0 = never)
  2252.  22h    BYTE    device containing spoolfile
  2253.  23h    WORD    bytes to print for test print
  2254.  25h    WORD    block number to start print
  2255.  27h    BYTE    reserved
  2256. --------b-6F0E-------------------------------
  2257. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE
  2258.     AH = 0Eh
  2259.     BP = driver ID (see #03741)
  2260.     DX = data word
  2261. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2262.     BP,DS destroyed
  2263. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD"
  2264. --------b-6F0E-------------------------------
  2265. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA
  2266.     AH = 0Eh
  2267.     BP = driver ID (see #03741)
  2268.     ??? details not yet available
  2269. Return: ???
  2270. SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra"
  2271. --------b-6F0E--BP0012-----------------------
  2272. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR
  2273.     AH = 0Eh
  2274.     BP = 0012h (driver ID for V_SYSTEM)
  2275.     BX = vector address used
  2276.     ES:DI -> new CS:IP entry point
  2277. Return: AH = status (00h) (see #03744)
  2278.     BP,DS destroyed
  2279. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2280.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  2281.       the routine should adjust BX and return the new value.  If the
  2282.       SF_INIT call returns with error code FEh, the power-on self-test
  2283.       sequence will be called.
  2284. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h
  2285. SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012h
  2286. --------b-6F0E--BP005A-----------------------
  2287. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS
  2288.     AH = 0Eh
  2289.     BP = 005Ah (driver ID for V_STRACK)
  2290.     CX = minimum Y coordinate
  2291.     DX = maximum Y coordinate
  2292. Return: AH = status (see #03744)
  2293.     BP,DS destroyed
  2294. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah
  2295. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008h
  2296. --------N-6F0F-------------------------------
  2297. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  2298.     AH = 0Fh
  2299.     ???
  2300. Return: ???
  2301. SeeAlso: AH=07h,AH=08h"10NET"
  2302. --------N-6F10-------------------------------
  2303. INT 6F - 10NET - ATTACH/DETACH PRINTER
  2304.     AH = 10h
  2305.     AL = subfunction
  2306.         00h initiate spooling if LPT1 is mounted
  2307.         01h terminate spooling if LPT1 is mounted
  2308. SeeAlso: INT 21/AX=5D08h
  2309. --------b-6F10-------------------------------
  2310. INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE
  2311.     AH = 10h
  2312.     BP = driver ID (see #03741)
  2313. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2314.     DX = data word
  2315.     BP,DS destroyed
  2316. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD"
  2317. --------b-6F10--BP0012-----------------------
  2318. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR
  2319.     AH = 10h
  2320.     BP = 0012h (driver ID for V_SYSTEM)
  2321.     BX = vector address used
  2322.     ES:DI -> new CS:IP entry point
  2323. Return: AH = status (00h) (see #03744)
  2324.     BP,DS destroyed
  2325. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2326.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  2327.       data area. If the SF_INIT call returns with error code FEh, the
  2328.       power-on self-test sequence will be called.
  2329. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h
  2330. SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012h
  2331. --------b-6F10--BP005A-----------------------
  2332. INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE
  2333.     AH = 10h
  2334.     BP = 005Ah (driver ID for V_STRACK)
  2335.     BX = X coordinate
  2336.     CX = Y coordinate
  2337. Return: AH = status (see #03744)
  2338.     BP,DS destroyed
  2339. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  2340. SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004h
  2341. --------N-6F11-------------------------------
  2342. INT 6F - 10NET - LOCK FCB
  2343.     AH = 11h
  2344.     AL = mode
  2345.         01h sequential
  2346.         02h random
  2347.         03h random block
  2348.         CX = number of records
  2349.     DS:DX -> FCB (see #01345 at INT 21/AH=0Fh)
  2350. Return: CF clear if successful
  2351.     CF set on error
  2352.         AX = error code (see also #03740)
  2353.         0002h file not found
  2354. SeeAlso: AH=12h,INT 21/AH=0Fh
  2355. --------N-6F12-------------------------------
  2356. INT 6F - 10NET - UNLOCK FCB
  2357.     AH = 12h
  2358.     AL = mode
  2359.         00h sequential
  2360.         01h random
  2361.         02h random block
  2362.         CX = number of records
  2363.     DS:DX -> FCB (see #01345 at INT 21/AH=0Fh)
  2364. Return: CF clear if successful
  2365.     CF set on error
  2366.         AX = error code (see also #03740)
  2367.         0002h file not found
  2368. SeeAlso: AH=11h
  2369. --------b-6F12--BP0012-----------------------
  2370. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR
  2371.     AH = 12h
  2372.     BP = 0012h (driver ID for V_SYSTEM)
  2373.     ES:DI -> new CS:IP entry point
  2374. Return: AH = status (00h) (see #03744)
  2375.     BP,DS destroyed
  2376. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2377.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  2378.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  2379.       self-test sequence will be called.
  2380. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h
  2381. SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012h
  2382. --------b-6F12--BP005A-----------------------
  2383. INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE
  2384.     AH = 12h
  2385.     BP = 005Ah (driver ID for V_STRACK)
  2386. Return: AH = status (see #03744)
  2387.     BP,DS destroyed
  2388. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE"
  2389. --------N-6F13-------------------------------
  2390. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  2391.     AH = 13h
  2392.     DS:DX -> node ID, 12 bytes blank-padded
  2393. Return: CF clear if successful
  2394.         ES:BX = configuration table address on given machine
  2395.     CF set on error
  2396.         AX = error code (see #03740)
  2397. SeeAlso: AH=03h
  2398. --------N-6F14-------------------------------
  2399. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  2400.     AH = 14h
  2401.     BX:SI = address of remote memory
  2402.     CX = length (<=1024 bytes)
  2403.     DS:DX -> node ID, 12 bytes blank-padded
  2404.     DS:DI -> area to receive remote memory image
  2405. Return: CF clear if successful
  2406.         CX = amount of memory copied to DS:SI
  2407.     CF set on error
  2408.         AX = error code (see #03740)
  2409. --------b-6F14--BP0012-----------------------
  2410. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR
  2411.     AH = 14h
  2412.     BP = 0012h (driver ID for V_SYSTEM)
  2413.     ES:DI -> new CS:IP entry point
  2414. Return: AH = status (00h) (see #03744)
  2415.     BP,DS destroyed
  2416. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2417.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  2418.       the routine should adjust BX and return the new value.  If the
  2419.       SF_INIT call returns with error code FEh, the power-on self-test
  2420.       sequence will be called.
  2421. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h
  2422. SeeAlso: AH=16h/BP=0012h
  2423. --------N-6F1501-----------------------------
  2424. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  2425.     AX = 1501h
  2426.     BX = zero-based index
  2427.     DS:SI -> node ID, 12 bytes blank-padded
  2428.     ES:DI -> 85-byte buffer for shared device table entry (see #03774)
  2429. Return: CF clear if successful
  2430.         ES:DI buffer contains shared device table entry of BXth device
  2431.     CF set on error
  2432.         AX = error code (see #03740)
  2433. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  2434.  
  2435. Format of 10NET shared device table entry:
  2436. Offset    Size    Description    (Table 03774)
  2437.  00h  8 BYTEs    device
  2438.  08h  8 BYTEs    alias
  2439.  10h 64 BYTEs    path
  2440.  50h  8 BYTEs    password
  2441.  58h    BYTE    access
  2442.  59h  4 BYTEs    mask
  2443. --------N-6F1502-----------------------------
  2444. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  2445.     AX = 1502h
  2446.     DS:SI -> node ID, 12 bytes blank-padded
  2447.     ES:DI -> valid shared device table entry
  2448. Return: CF clear if successful
  2449.     CF set on error
  2450.         AX = error code (see #03740)
  2451. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  2452. --------N-6F1503-----------------------------
  2453. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  2454.     AX = 1503h
  2455.     BX = zero-based index
  2456.     DS:SI -> node ID, 12 bytes blank-padded
  2457. Return: CF clear if successful
  2458.     CF set on error
  2459.         AX = error code (see #03740)
  2460. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  2461. --------N-6F16-------------------------------
  2462. INT 6F - 10NET v5.0 - "GL WHO" - ???
  2463.     AH = 16h
  2464.     ???
  2465. Return: ???
  2466. SeeAlso: AH=0Dh
  2467. --------b-6F16--BP0012-----------------------
  2468. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR
  2469.     AH = 16h
  2470.     BP = 0012h (driver ID for V_SYSTEM)
  2471.     ES:DI -> new CS:IP entry point
  2472. Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra")
  2473.     BP,DS destroyed
  2474. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2475.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  2476.       data area.  If the SF_INIT call returns with error code FEh, the
  2477.       power-on self-test sequence will be called.
  2478. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h
  2479. SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012h
  2480. --------N-6F17-------------------------------
  2481. INT 6F - 10NET v3.3+ - MOUNT
  2482.     AH = 17h
  2483.     AL = local drive number (0=A:)
  2484.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  2485.     DS:DX -> node ID, 12 bytes blank-padded
  2486. Return: CF clear if successful
  2487.     CF set on error
  2488.         AX = error code (see #03740)
  2489. SeeAlso: AH=18h
  2490. --------N-6F18-------------------------------
  2491. INT 6F - 10NET v3.3+ - UNMOUNT
  2492.     AH = 18h
  2493.     AL = local drive number (0=A:)
  2494.     BL = type
  2495.         00h        disk
  2496.         01h-03h LPTn
  2497.         04h,05h COMx
  2498. Return: CF clear if successful
  2499.     CF set on error
  2500.         AX = error code (see #03740)
  2501. SeeAlso: AH=17h
  2502. --------b-6F18--BP0012-----------------------
  2503. INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES
  2504.     AH = 18h
  2505.     BP = 0012h (driver ID for V_SYSTEM)
  2506.     AL = sense of test (00h equal, 02h non-equal)
  2507.     BX = AND mask
  2508.     DX = pattern
  2509.     SI = first vector address to search
  2510.     DI = offset in HP header of field to test
  2511. Return: AH = status (00h,FEh) (see #03744 at INT 6F/AH=00h"HP Vectra")
  2512.     BP,DS destroyed
  2513.     ---if AH=00h---
  2514.     SI = first matching vector address
  2515. Desc:    compare successive drivers' header fields starting at address SI
  2516.       until the header field AND BX is either equal or non-equal to DX
  2517. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h
  2518. SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012h
  2519. --------N-6F19-------------------------------
  2520. INT 6F U - 10NET v5.0 - AUDIT
  2521.     AH = 19h
  2522.     ???
  2523. Return: ???
  2524. SeeAlso: AH=99h
  2525. --------N-6F1A-------------------------------
  2526. INT 6F U - 10NET v5.0 - "BULL" - ???
  2527.     AH = 1Ah
  2528.     ???
  2529. Return: ???
  2530. --------N-6F1B-------------------------------
  2531. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  2532.     AH = 1Bh
  2533.     ???
  2534. Return: ???
  2535. --------N-6F1C-------------------------------
  2536. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  2537.     AH = 1Ch
  2538.     ???
  2539. Return: ???
  2540. --------N-6F1D-------------------------------
  2541. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  2542.     AH = 1Dh
  2543.     ???
  2544. Return: ???
  2545. --------N-6F1E-------------------------------
  2546. INT 6F U - 10NET v5.0 - "SCHED" - ???
  2547.     AH = 1Eh
  2548.     ???
  2549. Return: ???
  2550. --------b-6F1E--BP0012-----------------------
  2551. INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA
  2552.     AH = 1Eh
  2553.     BP = 0012h (driver ID for V_SYSTEM)
  2554. Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra")
  2555.     BX = last-used DS
  2556.     DX = maximum DS
  2557.     BP,DS destroyed
  2558. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012h
  2559. --------N-6F1F-------------------------------
  2560. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  2561.     AH = 1Fh
  2562.     ???
  2563. Return: ???
  2564. --------N-6F20-------------------------------
  2565. INT 6F U - 10NET v5.0 - ???
  2566.     AH = 20h
  2567.     ???
  2568. Return: ???
  2569. --------b-6F20--BP0012-----------------------
  2570. INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY
  2571.     AH = 20h
  2572.     BP = 0012h (driver ID for V_SYSTEM)
  2573.     BX = new value for "last-used DS"
  2574.     DX = new value for "maximum DS"
  2575. Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra")
  2576.     BP,DS destroyed
  2577. Note:    the F_INS_FIXGETDS and F_INS_FREEGETDS functions
  2578.       (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned
  2579.       by this call, requiring care if both methods are used to allocate
  2580.       memory
  2581. SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012h
  2582. --------N-6F21-------------------------------
  2583. INT 6F U - 10NET v5.0 - ???
  2584.     AH = 21h
  2585.     ???
  2586. Return: ???
  2587. --------N-6F22-------------------------------
  2588. INT 6F U - 10NET v5.0 - ???
  2589.     AH = 22h
  2590.     ???
  2591. Return: ???
  2592. --------b-6F22--BP0012-----------------------
  2593. INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY
  2594.     AH = 22h
  2595.     BP = 0012h (driver ID of V_SYSTEM)
  2596.     BL = address of CMOS byte to read
  2597. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2598.     AL = byte read
  2599.     BP,DS destroyed
  2600. Note:    supported by ES, QS, and RS series HP Vectras
  2601. SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012h
  2602. --------b-6F24--BP0012-----------------------
  2603. INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY
  2604.     AH = 24h
  2605.     BP = 0012h (driver ID of V_SYSTEM)
  2606.     BL = address of CMOS byte to write
  2607.     AL = new value
  2608. Return: AH = status (see #03744)
  2609.     BP,DS destroyed
  2610. Note:    updates the CMOS checksum fields (both IBM-standard and HP checksums)
  2611. SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012h
  2612. --------b-6F2A--BP0012-----------------------
  2613. INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS
  2614.     AH = 2Ah
  2615.     BP = 0012h (driver ID of V_SYSTEM)
  2616. Return: AH = status (see #03744)
  2617.     BP,DS destroyed
  2618. Note:    this is a hook for multitasking systems
  2619. SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680h
  2620. --------b-6F30--BP0012-----------------------
  2621. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS
  2622.     AH = 30h
  2623.     BP = 0012h (driver ID of V_SYSTEM)
  2624. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2625.     BP,DS destroyed
  2626. Desc:    enables keyclicks and flushes any pending keyclicks
  2627. SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012h
  2628. --------b-6F32--BP0012-----------------------
  2629. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS
  2630.     AH = 32h
  2631.     BP = 0012h (driver ID of V_SYSTEM)
  2632. Return: AH = status (see #03744)
  2633.     BP,DS destroyed
  2634. Desc:    disables keyclicks and flushes any pending keyclicks
  2635. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012h
  2636. --------b-6F34--BP0012-----------------------
  2637. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK
  2638.     AH = 34h
  2639.     BP = 0012h (driver ID of V_SYSTEM)
  2640. Return: AH = status (see #03744)
  2641.     BP,DS destroyed
  2642. Desc:    generate a keyclick if fewer than four clicks are already pending
  2643. Note:    if keyclicks are already pending, the remaining click count is
  2644.       incremented and the function returns immediately
  2645. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012h
  2646. --------b-6F36--BP0012-----------------------
  2647. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS
  2648.     AH = 36h
  2649.     BP = 0012h (driver ID of V_SYSTEM)
  2650. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2651.     BP,DS destroyed
  2652. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012h
  2653. --------b-6F38--BP0012-----------------------
  2654. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS
  2655.     AH = 38h
  2656.     BP = 0012h (driver ID of V_SYSTEM)
  2657. Return: AH = status (see #03744)
  2658.     BP,DS destroyed
  2659. SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012h
  2660. --------b-6F3A--BP0012-----------------------
  2661. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES
  2662.     AH = 3Ah
  2663.     BP = 0012h (driver ID of V_SYSTEM)
  2664. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  2665.     BP,DS destroyed
  2666. Desc:    make a sound of the frequency and duration defined in the EX-BIOS
  2667.       global data area (see #03748)
  2668. SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h
  2669. SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012h
  2670. --------b-6F3C--BP0012-----------------------
  2671. INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION
  2672.     AH = 3Ch
  2673.     BP = 0012h (driver ID of V_SYSTEM)
  2674.     BX = frequency in Hz (1-25000, 0 = off)
  2675.     DX = duration in 10-microsecond increments
  2676. Return: AH = status (see #03744)
  2677.     BP,DS destroyed
  2678. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#03748
  2679. --------b-6F3E--BP0012-----------------------
  2680. INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION
  2681.     AH = 3Eh
  2682.     BP = 0012h (driver ID of V_SYSTEM)
  2683.     BX = frequency in Hz (1-25000, 0 = off)
  2684.     DX = duration in 10-microsecond increments
  2685. Return: AH = status (see #03744)
  2686.     BP,DS destroyed
  2687. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012h
  2688. --------b-6F40--BP0012-----------------------
  2689. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX
  2690.     AH = 40h
  2691.     BP = 0012h (driver ID of V_SYSTEM)
  2692. Return: AH = status (see #03744)
  2693.     BX = next free string index
  2694.     BP,DS destroyed
  2695. Desc:    get the next string index available to user programs
  2696. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012h
  2697. --------b-6F42--BP0012-----------------------
  2698. INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST
  2699.     AH = 42h
  2700.     BP = 0012h (driver ID of V_SYSTEM)
  2701.     ES:DI -> bucket header (see #03775)
  2702. Return: AH = status (00h,FEh) (see #03744 at AH=00h"HP Vectra")
  2703.     BP,DS destroyed
  2704. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h
  2705.  
  2706. Format of HP Vectra EX-BIOS bucket header:
  2707. Offset    Size    Description    (Table 03775)
  2708.  00h    DWORD    pointer to next bucket header (FFFFh:FFFFh if last)
  2709.  04h    WORD    upper bound on string index
  2710.  06h    WORD    lower bound on string index
  2711.  08h    DWORD    pointer to array of string offset pointers
  2712.  0Ch    WORD    segment of strings
  2713. Note:    the strings pointed at by the offset pointers are byte-counted ASCIZ
  2714.       strings
  2715. --------b-6F44--BP0012-----------------------
  2716. INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST
  2717.     AH = 44h
  2718.     BP = 0012h (driver ID of V_SYSTEM)
  2719.     ES:DI -> bucket header (see #03775)
  2720. Return: AH = status (00h) (see #03744)
  2721.     BP,DS destroyed
  2722. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012h
  2723. --------b-6F46--BP0012-----------------------
  2724. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST
  2725.     AH = 46h
  2726.     BP = 0012h (driver ID of V_SYSTEM)
  2727.     BX = string index
  2728. Return: AH = status (00h,other) (see #03744)
  2729.     BP,DS destroyed
  2730.     ---if successful---
  2731.     CX = length of string (excluding count byte and terminating NUL)
  2732.     DS:SI -> header for string
  2733.     ES:DI -> found string
  2734. SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012h
  2735. --------b-6F48--BP0012-----------------------
  2736. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING
  2737.     AH = 48h
  2738.     BP = 0012h (driver ID of V_SYSTEM)
  2739.     ES:DI -> ASCIZ string
  2740. Return: AH = status (00h,other) (see #03744 at AH=00h"HP Vectra")
  2741.     BP,DS destroyed
  2742.     ---if successful---
  2743.     BX = index for the given string
  2744. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012h
  2745. --------A-6F636FBX6D70-----------------------
  2746. INT 6F - Clara Empricost - TSR Version - INSTALLATION CHECK
  2747.     AX = 636Fh ('co')
  2748.     BX = 6D70h ('mp')
  2749.     CX = 696Eh ('in')
  2750.     SS:DX -> WORD to set if installed
  2751. Return: SS:DX word set to 636Fh if installed
  2752. Program: Condition List Action Rejection Algorithm for the Evaluation
  2753.       of Music at Pseudo-Random Idea COnstruction STage
  2754.       (CLARA EMPRICOST) is an experimental program by Silas Brown
  2755. SeeAlso: AX=636Fh/BX=6D70h"UNINSTALL"
  2756. --------A-6F636FBX6D70-----------------------
  2757. INT 6F - Clara Empricost - TSR Version - UNINSTALL
  2758.     AX = 636Fh ('co')
  2759.     BX = 6D70h ('mp')
  2760.     CX = 6F73h ('os')
  2761. Return: nothing -- call installation check to determine whether successful
  2762. Program: Condition List Action Rejection Algorithm for the Evaluation
  2763.       of Music at Pseudo-Random Idea COnstruction STage
  2764.       (CLARA EMPRICOST) is an experimental program by Silas Brown
  2765. Notes:     Saves any unfinished task and prevents processing of
  2766.        new tasks, even if can't uninstall
  2767.      If INT 28h or INT 6Fh have been chained since installation,
  2768.        returns without changing interrupts or freeing memory
  2769.      do not call while DOS is active (i.e. InDOS flag is nonzero or INT 28
  2770.        is active and InDOS > 1)
  2771. SeeAlso: AX=636Fh/BX=6D70h"INSTALLATION CHECK"
  2772. --------N-6F80-------------------------------
  2773. INT 6F - 10NET v5.0 - LOGIN
  2774.     AH = 80h
  2775.     DS:DX -> login record (see #03776)
  2776. Return: CF clear if successful
  2777.         BL = number of days until password expires (00h = never)
  2778.         CL = security level
  2779.     CF set on error
  2780.         AX = status (see #03740)
  2781. SeeAlso: AH=00h,AH=81h
  2782.  
  2783. Format of 10NET login record:
  2784. Offset    Size    Description    (Table 03776)
  2785.  00h  8 BYTEs    user name
  2786.  08h  8 BYTEs    password
  2787.  10h 15 BYTEs    server node ID
  2788.  1Fh  8 BYTEs    new password
  2789.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  2790. --------N-6F81-------------------------------
  2791. INT 6F - 10NET v5.0 - LOGOUT
  2792.     AH = 81h
  2793.     DS:DX -> server node ID (DX=0000h for universal logout)
  2794. Return: AX = status (see #03740)
  2795. SeeAlso: AH=01h,AH=80h
  2796. --------N-6F8A-------------------------------
  2797. INT 6F - 10NET v5.0 - CHAT
  2798.     AH = 8Ah
  2799.     DS:BX -> chat parameters (see #03777)
  2800.     DS:DX -> chat message (see #03778)
  2801. Return: CF clear if successful
  2802.     CF set on error
  2803.         AX = status (see #03740)
  2804. SeeAlso: AH=0Ah"10NET"
  2805.  
  2806. Format of 10NET chat parameters:
  2807. Offset    Size    Description    (Table 03777)
  2808.  00h  8 BYTEs    sender's user name
  2809.  08h  8 BYTEs    destination user name
  2810.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  2811.  
  2812. Format of 10NET chat message:
  2813. Offset    Size    Description    (Table 03778)
  2814.  00h    WORD    message length
  2815.  02h  N BYTEs    chat message contents
  2816. --------N-6F8D-------------------------------
  2817. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  2818.     AH = 8Dh
  2819.     BX = service mask (see #03779)
  2820.     CX = length of buffer
  2821.     DS:DX -> buffer for array of Who data structures (see #03780)
  2822. Return: CF clear if successful
  2823.         CX = number of nodes matching service mask
  2824.         DS:DX buffer filled
  2825.     CF set on error
  2826.         AX = status (see #03740)
  2827. SeeAlso: AH=0Dh
  2828.  
  2829. Bitfields for 10NET service mask:
  2830. Bit(s)    Description    (Table 03779)
  2831.  0    workstation
  2832.  1    file server
  2833.  2    print server
  2834.  3    de-spool server
  2835.  
  2836. Format of 10NET Who data structure:
  2837. Offset    Size    Description    (Table 03780)
  2838.  00h  8 BYTEs    user name
  2839.  08h 15 BYTEs    node ID
  2840.  17h  3 BYTEs    unique portion of Ethernet address
  2841.  1Ah    BYTE    Who group number
  2842.  1Bh    WORD    service mask (see #03779)
  2843.  1Dh    DWORD    serial number
  2844.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  2845.  22h    BYTE    chat mask (see #03781)
  2846.  23h    BYTE    internal system bits (see #03782)
  2847.  24h  9 BYTEs    version number in format MM.mm.xxx
  2848.  2Dh    BYTE    number of shared directories
  2849.  2Eh    BYTE    number of shared printer queues
  2850.  
  2851. Bitfields for 10NET chat mask:
  2852. Bit(s)    Description    (Table 03781)
  2853.  0    chat permitted
  2854.  1    bell enabled
  2855.  2    chat keyboard initiated
  2856.  3    in INT 16 handler
  2857.  4    in Get Input
  2858.  5    display has timed out
  2859.  6    chat is idle
  2860.  
  2861. Bitfields for 10NET internal system bits:
  2862. Bit(s)    Description    (Table 03782)
  2863.  0    submit permitted
  2864.  1    submit initiated
  2865.  2    submit executing
  2866.  3    internal client call/chat/spool/autospool
  2867.  4    in spool termination
  2868.  5    print permitted
  2869.  6    waiting for keyboard input
  2870. --------N-6F9501-----------------------------
  2871. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  2872.     AX = 9501h
  2873.     BX = zero-based index
  2874.     DS:SI -> server's node ID
  2875.     ES:DI -> buffer for shared device structure (see #03783)
  2876. Return: CF clear if successful
  2877.     CF set on error
  2878.         AX = status (see #03740)
  2879. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  2880.  
  2881. Format of 10NET shared device structure:
  2882. Offset    Size    Description    (Table 03783)
  2883.  00h  8 BYTEs    alias
  2884.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  2885.  09h    BYTE    access rights
  2886.         bit 0: read
  2887.         bit 1: write
  2888.         bit 2: create
  2889.  0Ah  8 BYTEs    password
  2890.  12h 32 BYTEs    comment
  2891. ---directory---
  2892.  32h 64 BYTEs    pathname of shared directory
  2893. ---print queue---
  2894.  32h    BYTE    notification bit mask (see #03784)
  2895.  33h    BYTE    job control bit mask (see #03785)
  2896.  34h    WORD    number of days to retain file
  2897.  36h    WORD    test print length
  2898.  38h    BYTE    number of copies to print
  2899.  39h    BYTE    compression algorithm
  2900.  3Ah    BYTE    tab width (00h = don't expand)
  2901.  3Bh    BYTE    priority
  2902.  3Ch    WORD    time to open queue (FFFFh = always)
  2903.  3Eh    WORD    time to close queue
  2904.  40h    WORD    pause following queue switch, in clock ticks
  2905.  42h    WORD    pause between print jobs, in clock ticks
  2906.  44h    BYTE    associate queue file existence mask
  2907.         bit 0: queue switch file exists
  2908.         bit 1: initiate file exists
  2909.         bit 2: abort file exists
  2910.  45h  6 BYTEs    character sequence for page eject
  2911.  4Bh    BYTE    status of print queue
  2912.         bit 0: queue is closed
  2913.  4Ch    WORD    number of jobs on queue
  2914.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  2915.  50h    BYTE    number of print devices in printer pool
  2916.  51h    WORD    offset of first print device structure (FFFFh if empty)
  2917.  
  2918. Bitfields for notification flags:
  2919. Bit(s)    Description    (Table 03784)
  2920.  0    user at print start
  2921.  1    operator at start, with reply
  2922.  2    user at print completion
  2923.  3    operator at completion, with reply
  2924.  4    user on queue switch
  2925.  5    operator on queue switch, with reply
  2926.  6    user on print error
  2927.  
  2928. Bitfields for 10NET job control mask:
  2929. Bit(s)    Description    (Table 03785)
  2930.  0    print banner page
  2931.  1    eject page at end of job
  2932.  2    mark as "held" (queue but don't print)
  2933.  3    rush job (queue at top)
  2934.  4    overwrite file with zeros before deletion
  2935.  5    hyperspool if possible
  2936. --------N-6F9502-----------------------------
  2937. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  2938.     AX = 9502h
  2939.     DS:SI -> server's node ID
  2940.     ES:DI -> shared device structure (see #03783)
  2941. Return: CF clear if successful
  2942.     CF set on error
  2943.         AX = status (see #03740)
  2944. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  2945. --------N-6F9503-----------------------------
  2946. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  2947.     AX = 9503h
  2948.     BX = zero-based index
  2949.     DS:SI -> server's node ID
  2950. Return: CF clear if successful
  2951.     CF set on error
  2952.         AX = status (see #03740)
  2953. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  2954. --------N-6F9504-----------------------------
  2955. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  2956.     AX = 9504h
  2957.     BX = zero-based shared device index
  2958.     CX = zero-based user index
  2959.     DS:SI -> server's node ID
  2960. Return: CF clear if successful
  2961.         ES:DI -> node ID of the CX'th user of the BX'th device
  2962.     CF set on error
  2963.         AX = status (see #03740)
  2964. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  2965. --------N-6F99-------------------------------
  2966. INT 6F - 10NET v5.0 - AUDIT
  2967.     AH = 99h
  2968.     DS:SI -> server's node ID
  2969.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  2970. Return: CF clear if successful
  2971.     CF set on error
  2972.         AX = status (see #03740)
  2973. SeeAlso: AH=19h,AH=9Ch
  2974. --------N-6F9C-------------------------------
  2975. INT 6F - 10NET v5.0 - GET LOGIN LIST
  2976.     AH = 9Ch
  2977.     BX = zero-based index
  2978. Return: CF clear if successful
  2979.         DS:DI -> BX'th node ID that caller's machine is logged into
  2980.     CF set on error
  2981.         AX = status (see #03740)
  2982. --------H-70---------------------------------
  2983. INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK
  2984. Desc:    this interrupt is called when the real-time clock chip generates an
  2985.       alarm or periodic interrupt, among others.  The periodic interrupt
  2986.       occurs 1024 times per second.
  2987. Notes:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  2988.       unless in an event wait (see INT 15/AH=83h,INT 15/AH=86h).
  2989.     may be masked by setting bit 0 on I/O port A1h
  2990. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  2991. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview",MEM FEE00320h
  2992. SeeAlso: MEM 0040h:006Bh
  2993. --------v-70---------------------------------
  2994. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  2995. Note:    the virus sets this interrupt to be the same as INT 21, and then
  2996.       performs only INT 70 calls; since INT 70 is also generated by the
  2997.       real-time clock on the PC/AT and higher, this could cause random
  2998.       actions on an infected system
  2999. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  3000. --------H-71---------------------------------
  3001. INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  3002. Notes:    may be masked by setting bit 1 on I/O port A1h
  3003.     the default BIOS handler invokes INT 0A for compatibility, since the
  3004.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  3005.       AT expansion bus.
  3006.     under DESQview, only the INT 15h vector and BASIC segment address (the
  3007.       word at 0000h:0510h) may be assumed to be valid for the handler's
  3008.       process
  3009. SeeAlso: INT 0A"IRQ2",INT 59"IRQ9",MEM 0040h:006Bh
  3010. --------H-72---------------------------------
  3011. INT 72 C - IRQ10 - RESERVED
  3012. Note:    may be masked by setting bit 2 on I/O port A1h
  3013. SeeAlso: INT 5A"IRQ10",MEM 0040h:006Bh
  3014. --------H-73---------------------------------
  3015. INT 73 C - IRQ11 - RESERVED
  3016. Note:    may be masked by setting bit 3 on I/O port A1h
  3017. SeeAlso: INT 5B"IRQ11",MEM 0040h:006Bh
  3018. --------H-74---------------------------------
  3019. INT 74 C - IRQ12 - POINTING DEVICE (PS)
  3020. Notes:    may be masked by setting bit 4 on I/O port A1h
  3021.     under DESQview, only the INT 15h vector and BASIC segment address (the
  3022.       word at 0000h:0510h) may be assumed to be valid for the handler's
  3023.       process
  3024. SeeAlso: INT 33/AX=0000h,INT 33/AX=0024h,INT 5C"NetBIOS",MEM 0040h:006Bh
  3025. --------H-75---------------------------------
  3026. INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  3027. Desc:    redirected to INT 02 by the BIOS, for compatibility with the PC
  3028. Notes:    may be masked by setting bit 5 on I/O port A1h
  3029.     not all clones wire the coprocessor to generate this IRQ; some systems
  3030.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  3031.       (see INT 10"COPROCESSOR")
  3032.     under DESQview, only the INT 15h vector and BASIC segment address (the
  3033.       word at 0000h:0510h) may be assumed to be valid for the handler's
  3034.       process
  3035. SeeAlso: INT 10"COPROCESSOR",INT 5D"IRQ13",MEM 0040h:006Bh
  3036. --------H-76---------------------------------
  3037. INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
  3038. Notes:    may be masked by setting bit 6 on I/O port A1h
  3039.     on the PS/2, this interrupt is designed to be shared with other
  3040.       devices that produce an operation-complete interrupt, though
  3041.       the only current user is the hard disk
  3042. SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E"IRQ14",MEM 0040h:006Bh
  3043. --------H-77---------------------------------
  3044. INT 77 C - IRQ15 - RESERVED (AT,PS)
  3045. Note:    may be masked by setting bit 7 on I/O port A1h
  3046. SeeAlso: INT 5F"IRQ15",MEM 0040h:006Bh
  3047. --------H-77---------------------------------
  3048. INT 77 C - IRQ15 - SECONDARY IDE CONTROLLER - OPERATION COMPLETE
  3049. Note:    may be masked by setting bit 7 on I/O port A1h
  3050. SeeAlso: INT 5F"IRQ15",MEM 0040h:006Bh
  3051. --------H-77---------------------------------
  3052. INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  3053. Note:    may be masked by setting bit 7 on I/O port A1h
  3054. SeeAlso: INT 15/AX=4600h,INT 5F"IRQ15"
  3055. --------E-78---------------------------------
  3056. INT 78 - UofSalford DBOS DOS extender - API
  3057.     AH = function
  3058.         00h (PB) display 32-bit memory specified by command argument
  3059.         01h (PT) display 32-bit instruction(s) specified by command arg
  3060.         02h specify offset to subsequent PB and PT commands
  3061.         03h switch to protected mode
  3062.         DWORD following INT instruction point to map; protected-mode
  3063.               entry point is immediately following the DWORD
  3064.         Return: never
  3065.         Note:    if bit 31 of the map address is set, only a stub was
  3066.               loaded by DOS and DBOS will load the entire program
  3067.         04h specify that subsequent load (AH=03h) should leave program in
  3068.           memory
  3069.         05h release program from memory
  3070.         06h set break point at address and option count from commandline
  3071.         07h resume program execution
  3072.         08h single-step program
  3073.         09h set read/write breakpoint using 386 debug registers
  3074.         0Ah set write breakpoint using 386 debug register
  3075.         0Bh set memory byte to new value
  3076.         0Ch display CPU registers
  3077.         0Dh run until specified program address reached
  3078.         0Fh print trace from program map
  3079.         10h specify an offset using a map symbol
  3080.         14h print memory without any offset
  3081.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  3082.         1Dh get address of real/protected-mode communication buffer
  3083.         Return: ES:BP -> comm buffer
  3084.         1Eh set real-mode memory size (specify how much real-mode memory
  3085.           to leave free when running FTN77 programs)
  3086.         22h uninstall DBOS
  3087.         24h force DBOS to emulate coprocessor instructions
  3088.         26h set named DBOS switches from commandline
  3089.         27h reset named DBOS switched from commandline
  3090.         2Ah set list of dynamic link libraries to contents of commandline
  3091.           file
  3092.         35h specify that subsequent load (AH=03h) should stop at first
  3093.           instruction
  3094. Return: ???
  3095. Notes:    DBOS supports functions 00h through 50h; many of these functions
  3096.       provide a low-level debugging interface
  3097.     command arguments are read from the calling program's PSP
  3098. SeeAlso: INT 79"DBOS"
  3099. Index:    uninstall;DBOS DOS extender
  3100. --------E-78---------------------------------
  3101. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  3102. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3103.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3104. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3105.       early versions of the extender
  3106.     the newest versions of GO32 dynamically allocate the vectors used
  3107.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3108. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  3109. --------A-78---------------------------------
  3110. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  3111.     AX = function
  3112.         0001h begin plot
  3113.         BX = file level
  3114.             0000h ASCII file
  3115.             0001h binary file
  3116.             0002h AutoCAD DXB file
  3117.             0003h installed ADI driver
  3118.         0002h end plot (close plotter)
  3119.         0003h move (pen up)
  3120.         BX = new X position
  3121.         CX = new Y position
  3122.         0004h move (pen down)
  3123.         BX = new X position
  3124.         CX = new Y position
  3125.         0005h select pen
  3126.         BX = pen number
  3127.         0006h select drawing speed
  3128.         BX = drawing speed N
  3129.         0007h select line style
  3130.         BX = line style N
  3131.         0008h raise pen
  3132.         0009h abort plot
  3133. Return: AX = 0000h (may be used for driver status in future releases)
  3134. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  3135. --------d-78---------------------------------
  3136. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  3137. SeeAlso: INT 79"ADP-60"
  3138. --------s-78-------------------------------
  3139. INT 78 - ULTRAMID - API
  3140.     AX = function
  3141.     --- digital functions ---
  3142.         0000h start digital
  3143.         ES:DI -> Sound Structure
  3144.         Return: AX = voice used
  3145.         0001h play next buffer
  3146.         ES:DI -> Sound Structure
  3147.         0002h set panning
  3148.         BX = pan
  3149.         CX = voice
  3150.         0003h set volume
  3151.         BX = volume
  3152.         CX = voice
  3153.         0004h set rate (not yet implemented)
  3154.         0005h pause digital
  3155.         CX = voice
  3156.         0006h restart digital
  3157.         CX = voice
  3158.         0007h stop digital
  3159.         CX = voice
  3160.         0008h get digital position
  3161.         CX = voice
  3162.         Return: AX:DX -> position in PC buffer
  3163.         0009h get voice status (not yet implemented)
  3164.     --- MIDI functions ---
  3165.         000Ah load MIDI patches
  3166.         ES:DI -> MIDI track just after the Mtrk header
  3167.         BX:DX = length of MIDI track
  3168.         000Bh load XMIDI patches
  3169.         ES:DI -> event buffer including the EVNT header
  3170.         000Ch load patch
  3171.         CX = MIDI number of patch
  3172.         000Dh unload patch
  3173.         CX = MIDI number of patch
  3174.         000Eh start sequence
  3175.         000Fh unload all patches
  3176.         0010h MIDI out byte
  3177.         CX = MIDI byte
  3178.         0011h MIDI out string
  3179.         CX = length
  3180.         ES:DI -> string of MIDI data
  3181.         0012h all notes off
  3182.     --- resource functions ---
  3183.         0013h allocate memory
  3184.         BX:DX = size of GUS memory needed
  3185.         Return: AX:DX = address of memory, or 0000:0000 if not avaiable
  3186.         0014h free memory
  3187.         BX:DX = address of memory to be freed
  3188.         0015h uninstall
  3189.         0016h sem enter
  3190.         0017h sem leave
  3191.         0018h add external semaphore
  3192.         BX:DX -> external semaphore
  3193.         0019h clear external semaphore
  3194.         BX:DX -> external semaphore
  3195.         001Ah application start
  3196.         001Bh application end
  3197.     --- v1.12 ---
  3198.         001Ch ???
  3199.         001Dh ???
  3200.         001Eh ???
  3201.         001Fh ???
  3202. Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data
  3203.        through the Gravis UltraSound (GUS)
  3204. InstallCheck:    test for the signature "ULTRAMID" at offset 0103h in the
  3205.       interrupt handler's segment
  3206. Range:    INT 78 to INT 7F
  3207. SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E/AH=00h"SBOS",INT 7E/AX=00FEh"SBOS"
  3208. Index:    uninstall;UltraMID
  3209. --------d-7800-------------------------------
  3210. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  3211.     AH = 00h
  3212.     DX = interface board I/O port
  3213. Return: CF set on error
  3214.         AL = error code (see #03786)
  3215. InstallCheck:    (used by TARGA.DEV) test for the string "SCSI" at offset 03h
  3216.       into the interrupt handler
  3217. Note:    if this routine is not called, the port is the driver's default
  3218.       (usually 0280h or 0300h)
  3219. SeeAlso: AH=01h,AH=02h
  3220. Index:    installation check;TARGA.DEV
  3221.  
  3222. (Table 03786)
  3223. Values for TARGA.DEV error code:
  3224.  00h    illegal command given to SCSI code
  3225.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  3226.       an 8-port boundary)
  3227.  02h    invalid DMA channel specified (must be from 1 to 3)
  3228.  03h    invalid SCSI board number specified (must be from 0 to 7)
  3229.  04h    error from data register test during self-test
  3230.  05h    SCSI input signals not all 0 when SCSI RST activated
  3231.  06h    SCSI input signals not all 0 before selecting a SCSI device
  3232.  07h    BSY signal is active; SCSI bus is busy
  3233.  08h    SCSI board not selected, BSY signal did not come on in response to
  3234.       raising SEL
  3235.  09h    time-out waiting for status state, signifying end of DMA transfer
  3236. --------E-780000-----------------------------
  3237. INT 78 - HugeRealMode Driver - INSTALLATION CHECK
  3238.     AX = 0000h
  3239. Return: AX = DBCAh if installed
  3240. Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20
  3241.       (1992), and makes a 4G flat address space (for both data and code)
  3242.       available to real-mode DOS programs
  3243. SeeAlso: AX=0001h
  3244. --------E-780001-----------------------------
  3245. INT 78 - HugeRealMode Driver - GET ENTRY POINT
  3246.     AX = 0001h
  3247. Return: ES:BX -> far call entry point (see #03788,#03803)
  3248. SeeAlso: AX=0000h
  3249.  
  3250. (Table 03787)
  3251. Values for HugeRealMode Server error code:
  3252.  00h    successful
  3253.  01h    unknown function
  3254.  02h    A20 disabled
  3255.  03h    A20 enabled
  3256.  04h    memory allocation error
  3257.  05h    memory not fixeable (LOCK)
  3258.  06h    memory not deallocaable
  3259.  07h    memory not moveable (UNLOCK)
  3260.  08h    change in memory allocation size not possible
  3261.  09h    file error (with .XMF-file)
  3262.  0Ah    memory error (with .XMF-file)
  3263.  0Bh    unknown procedure (currently Turbo Pascal unit only)
  3264.  
  3265. (Table 03788)
  3266. Call HugeRealMode Server "Enable A20" function with:
  3267.     AL = 00h
  3268. Return: AX = error code (see #03787)
  3269. Note:    The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded
  3270.       before HUGEREAL (for XMS-memory allocation and A20 control). It
  3271.       utilizes some undocumented 386+ features to enable 4G code and data
  3272.       segments (flat memory model) in the CPUs real-mode. It is not
  3273.       compatible with V86-mode (as with most EMM386). For maximum speed
  3274.       and compatibility with DOS it uses a two stage interrupt model
  3275.       (see #03791)
  3276. SeeAlso: #03789,#03790,#03791
  3277.  
  3278. (Table 03789)
  3279. Call HugeRealMode Server "Disable A20" function with:
  3280.     AL = 01h
  3281. Return: AX = error code (see #03787)
  3282. SeeAlso: #03788,#03790
  3283.  
  3284. (Table 03790)
  3285. Call HugeRealMode Server "Query A20 State" function with:
  3286.     AL = 02h
  3287. Return: AX = A20 state (0000h disabled, 0001h enabled)
  3288. SeeAlso: #03788,#03789
  3289.  
  3290. (Table 03791)
  3291. Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with:
  3292.     AL = 03h
  3293. Return: AX = error code (see #03787)
  3294. Notes:    If the two stage interrupt model is disabled, the IP must stay below
  3295.       1MB, because the high word of EIP is not saved correctly by the
  3296.       standard interrupt management in real mode.  Routines in extended
  3297.       memory may only be called with interrupts disabled (only usable for
  3298.       very short routines).
  3299.     If the two stage interupt model is enabled, these conventions are not
  3300.       required.  The outer (transparent) ISRs save the higher word of EIP
  3301.       in the high word of CR3 (possible modification: in memory, if this
  3302.       is not safe) and then invoke the standard ISRs.
  3303.     Because of this handling, one should use pseudo segmented code even in
  3304.       extended memory (64K blocks located on 64K boundaries) to avoid the
  3305.       misalignment of the saved EIP (in CR3). Another way is to track and
  3306.       realign CR3 each time when jumping over a 64K boundary in extended
  3307.       memory
  3308. SeeAlso: #03788,#03792
  3309.  
  3310. (Table 03792)
  3311. Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with:
  3312.     AL = 04h
  3313. Return: AX = error code (see #03787)
  3314. SeeAlso: #03788,#03791
  3315.  
  3316. (Table 03793)
  3317. Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with:
  3318.     AL = 05h
  3319. Return: AX = error code (see #03787)
  3320.     ES = segment address
  3321. SeeAlso: #03803
  3322.  
  3323. (Table 03794)
  3324. Call HugeRealMode Server "Allocate Memory" function with:
  3325.     AL = 06h
  3326.     DX = length in KB
  3327. Return: AX = error code (see #03787)
  3328.     DX = handle
  3329.     EBX = start address of allocated block
  3330. SeeAlso: #03795,#03796
  3331.  
  3332. (Table 03795)
  3333. Call HugeRealMode Server "Deallocate Memory" function with:
  3334.     AL = 07h
  3335.     DX = handle
  3336. Return: AX = error code (see #03787)
  3337. SeeAlso: #03794,#03796
  3338.  
  3339. (Table 03796)
  3340. Call HugeRealMode Server "Modify Allocated Memory Size" function with:
  3341.     AL = 08h
  3342.     DX = handle
  3343.     BX = new size in KB
  3344. Return: AX = error code (see #03787)
  3345.     EBX = new address
  3346. SeeAlso: #03794,#03795
  3347.  
  3348. (Table 03797)
  3349. Call HugeRealMode Server "Load .XMF-file" function with:
  3350.     AL = 09h
  3351.     ES:BX -> filename (see #03798)
  3352. Return: AX = error code (see #03787)
  3353.     ECX = target address
  3354. Notes:    memory must be allocated before loading
  3355.     .XMF file format (eXtended Memory executable File format) is supported
  3356.       by the HugeRealMode server for easier handling of XMS-code.
  3357.     The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to
  3358.       .XMF-format
  3359. SeeAlso: #03794
  3360.  
  3361. Format of .XMF program file header:
  3362. Offset    Size    Description    (Table 03798)
  3363.  00h    DWORD    signature "XMF_"
  3364.  04h    WORD    length of programs code
  3365.  06h    WORD    count of 32bit addresses to relocate
  3366.  08h    WORD    offset to code start (releative to file start) (see #03799)
  3367.  0Ah    WORD    relocation table
  3368. Note:    each word contains a 16bit address, where a relocation has to be
  3369.       performed
  3370. SeeAlso: #03797,#03799
  3371.  
  3372. Format of .XMF-file code header:
  3373. Offset    Size    Description    (Table 03799)
  3374.  00h    WORD    count of exported functions
  3375.  02h  N PWORDs    48bit pointers (16bit segment+32bit offset) to each function
  3376.         (16bit segment is always zero)
  3377.  var        start of program's code
  3378. SeeAlso: #03797,#03798
  3379.  
  3380. (Table 03800)
  3381. Call HugeRealMode Server "Set Segment Limits" function with:
  3382.     AL = 0Ah
  3383.     BL = segment limits (see #03801)
  3384. Return: AX = error code (see #03787)
  3385. SeeAlso: #03793
  3386.  
  3387. Bitfields for HugeRealMode Server segment limits:
  3388. Bit(s)    Description    (Table 03801)
  3389.  7    CS size: 1=4GB, 0=64KB
  3390.  6-5    not used
  3391.  4    SS size: 1=4GB, 0=64KB
  3392.  3    GS size
  3393.  2    FS size
  3394.  1    ES size
  3395.  0    DS size
  3396. SeeAlso: #03800
  3397.  
  3398. (Table 03802)
  3399. Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with:
  3400.     AL = 0Bh
  3401.     ES:SI = source address
  3402.     EDI = target address
  3403.     ECX = length
  3404. Return: AX = error code
  3405. SeeAlso: #03803
  3406.  
  3407. (Table 03803)
  3408. Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with:
  3409.     AL = 0Ch
  3410.     ESI = source address
  3411.     ES:DI = target address
  3412.     ECX = length
  3413. Return: AX = error code
  3414. SeeAlso: #03802
  3415. --------d-7801-------------------------------
  3416. INT 78 - TARGA.DEV - GET I/O PORT
  3417.     AH = 01h
  3418. Return: DX = current interface board I/O port
  3419. SeeAlso: AH=00h,AH=03h"TARGA"
  3420. --------d-7802-------------------------------
  3421. INT 78 - TARGA.DEV - SET DMA CHANNEL
  3422.     AH = 02h
  3423.     AL = interface board DMA channel
  3424. Return: CF set on error
  3425.     AL = error code (see #03786)
  3426. Note:    if this routine is not called, the DMA channel is the driver's default
  3427.       (usually 3)
  3428. SeeAlso: AH=00h,AH=03h"TARGA"
  3429. --------d-7803-------------------------------
  3430. INT 78 - TARGA.DEV - GET DMA CHANNEL
  3431.     AH = 03h
  3432. Return: AL = current interface board DMA channel
  3433. SeeAlso: AH=01h,AH=02h
  3434. --------d-7804-------------------------------
  3435. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  3436.     AH = 04h
  3437.     AL = SCSI device number
  3438. Return: CF set on error
  3439.     AL = error code (see #03786)
  3440. Note:    if this routine is not called, the device number used is the driver's
  3441.       default (usually 0)
  3442. SeeAlso: AH=02h,AH=05h
  3443. --------d-7805-------------------------------
  3444. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  3445.     AH = 05h
  3446. Return: AL = current SCSI device number
  3447. SeeAlso: AH=03h"TARGA",AH=04h
  3448. --------d-7806-------------------------------
  3449. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  3450.     AH = 06h
  3451.     AL = new state
  3452.         00h clear early return mode
  3453.         01h set early return mode
  3454. Note:    if early return mode is set then SCSI will return with no errors
  3455.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  3456.     if this routine is not called, early return mode is cleared
  3457. SeeAlso: AH=13h,AH=14h,AH=15h
  3458. --------d-7808-------------------------------
  3459. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  3460.     AH = 08h
  3461. Return: CF set on error
  3462.     AL = error code (see #03786)
  3463. Note:    the SCSI bus is also reset
  3464. SeeAlso: AH=09h
  3465. --------d-7809-------------------------------
  3466. INT 78 - TARGA.DEV - RESET SCSI BUS
  3467.     AH = 09h
  3468. Return: AL = error code if carry set (see #03786)
  3469. SeeAlso: AH=08h
  3470. --------d-7810-------------------------------
  3471. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  3472.     AH = 10h
  3473.     DS:SI -> command bytes (see #03804)
  3474. Return: AH = SCSI status byte
  3475.     CF clear if successful
  3476.         AL = SCSI message byte
  3477.     CF set on error
  3478.         AL = error code (see #03786)
  3479. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  3480.  
  3481. Format of SCSI Command:
  3482. Offset    Size    Description    (Table 03804)
  3483.  00h    BYTE    length of command
  3484.  01h    ???    command bytes
  3485. --------d-7811-------------------------------
  3486. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  3487.     AH = 11h
  3488.     DS:SI -> command bytes (see #03805)
  3489.     ES:BX -> data storage area
  3490.     CX = number of data bytes to transfer
  3491. Return: AH = SCSI status byte
  3492.     CF clear if successful
  3493.         AL = SCSI message byte
  3494.     CF set on error
  3495.         AL = error code (see #03786)
  3496. Note:    this command receives data internally one byte at a time
  3497. SeeAlso: AH=10h,AH=13h
  3498.  
  3499. Format of TARGA.DEV SCSI Command:
  3500. Offset    Size    Description    (Table 03805)
  3501.  00h    BYTE    length of command
  3502.  01h    ???    command bytes
  3503. --------d-7812-------------------------------
  3504. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  3505.     AH = 12h
  3506.     DS:SI -> command bytes (see #03806)
  3507.     ES:BX -> data storage area
  3508.     CX = number of data bytes to transfer
  3509. Return: AH = SCSI status byte
  3510.     CF clear if successful
  3511.         AL = SCSI message byte
  3512.     CF set on error
  3513.         AL = error code (see #03786)
  3514. Note:    this command sends data internally one byte at a time
  3515. SeeAlso: AH=14h
  3516.  
  3517. Format of TARGA.DEV SCSI Command:
  3518. Offset    Size    Description    (Table 03806)
  3519.  00h    BYTE    length of command
  3520.  01h    ???    command bytes
  3521. --------d-7813-------------------------------
  3522. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  3523.     AH = 13h
  3524.     DS:SI -> command bytes (see #03807)
  3525.     ES:BX -> data storage area
  3526.     DX:CX = number of data bytes to transfer
  3527. Return: AH = SCSI status byte (if early return mode is clear)
  3528.     CF clear if successful
  3529.         AL = SCSI message byte (if early return mode is clear)
  3530.     CF set on error
  3531.         AL = error code (see #03786)
  3532. Note:    this command receives data using DMA
  3533. SeeAlso: AH=11h,AH=12h
  3534.  
  3535. Format of TARGA.DEV SCSI Command:
  3536. Offset    Size    Description    (Table 03807)
  3537.  00h    BYTE    length of command
  3538.  01h    ???    command bytes
  3539. --------d-7814-------------------------------
  3540. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  3541.     AH = 14h
  3542.     DS:SI -> command bytes (see #03808)
  3543.     ES:BX -> data storage area
  3544.     DX:CX = number of data bytes to transfer
  3545. Return: AH = SCSI status byte (if early return mode is clear)
  3546.     CF clear if successful
  3547.         AL = SCSI message byte (if early return mode is clear)
  3548.     CF set on error
  3549.         AL = error code (see #03786)
  3550. Note:    this command sends data using DMA
  3551. SeeAlso: AH=12h,AH=13h
  3552.  
  3553. Format of TARGA.DEV SCSI Command:
  3554. Offset    Size    Description    (Table 03808)
  3555.  00h    BYTE    length of command
  3556.  01h    ???    command bytes
  3557. --------d-7815-------------------------------
  3558. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  3559.     AH = 15h
  3560. Return: AH = SCSI status byte
  3561.     CF clear if successful
  3562.         AL = SCSI message byte
  3563.     CF set on error
  3564.         AL = error code (see #03786)
  3565. Note:    if AH=06h was previously called to set the early return mode, this
  3566.       function finishes a command AH=13h or AH=14h which returned before
  3567.       the last DMA transfer was finished
  3568. SeeAlso: AH=06h,AH=13h,AH=14h
  3569. --------V-79---------------------------------
  3570. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  3571. Return: CF set if no keystroke available
  3572.         AX = FFFFh
  3573.     CF clear if key pressed
  3574.         AX = keystroke
  3575. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  3576.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  3577. Note:    if a keystroke is available, it is removed from the keyboard buffer
  3578.       before being returned
  3579. SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h
  3580. --------E-79---------------------------------
  3581. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  3582. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3583.       early versions of the extender
  3584.     the newest versions of GO32 dynamically allocate the vectors used
  3585.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3586. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  3587. --------d-79---------------------------------
  3588. INT 79 U - ADP-60 IDE adapter - ???
  3589. SeeAlso: INT 78"ADP-60"
  3590. --------E-79---------------------------------
  3591. INT 79 - DBOS DOS Extender
  3592.     details not available
  3593. Desc:    this interrupt is used by an MS Windows virtual device driver with
  3594.       which the DBOS extender communicates when run inside a Windows
  3595.       Enhanced Mode DOS box
  3596. SeeAlso: INT 78"DBOS"
  3597. --------A-790001-----------------------------
  3598. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  3599.     AX = 0001h
  3600.     BX = interface level (0001h)
  3601. Return: AX = status (0000h initialization failed, 0001h init successful)
  3602.     BX = digitizer type
  3603.         0000h relative pointing device (mouse, etc.)
  3604.         0001h digitizing tablet
  3605.     CX = digitizer dataflow type
  3606.         0000h continuous
  3607.         0001h pauses between packets
  3608. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  3609. --------A-790002-----------------------------
  3610. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  3611.     AX = 0002h
  3612. SeeAlso: AX=0001h,AX=0003h
  3613. --------A-790003-----------------------------
  3614. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  3615.     AX = 0003h
  3616. Return: AX = status
  3617.         0000h nothing
  3618.         0002h tracking point (no button pressed)
  3619.         BX = X coordinate
  3620.         CX = Y coordinate
  3621.         0003h picked point (button 0,A,B,C,D pressed)
  3622.         BX = X coordinate
  3623.         CX = Y coordinate
  3624.         0004h button pick
  3625.         BX = button number
  3626.         0005h button and coordinates
  3627.         BX = button number
  3628.         CX = X coordinate
  3629.         DX = Y coordinate
  3630. SeeAlso: AX=0001h,AX=0002h
  3631. --------N-7A---------------------------------
  3632. INT 7A U - Topware Network Operating System - ???
  3633.     AL = ???
  3634.     ???
  3635. Return: ???
  3636. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  3637. --------N-7A---------------------------------
  3638. INT 7A - X.PC Packet software interface
  3639.     ES:BX -> parameter block
  3640. SeeAlso: INT 60/AX=01FFh
  3641. --------E-7A---------------------------------
  3642. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  3643. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3644.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3645. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3646.       early versions of the extender
  3647.     the newest versions of GO32 dynamically allocate the vectors used
  3648.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3649. SeeAlso: INT 0A"IRQ2",INT 79"GO32",INT 7B"GO32"
  3650. --------P-7A---------------------------------
  3651. INT 7A O - PRINDIR - API (moved to INT 7C, then INT 2F/AX=7F00h)
  3652. SeeAlso: INT 7C"PRINDIR",INT 2F/AX=7F00h"PRINDIR"
  3653. --------N-7A---------------------------------
  3654. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  3655. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  3656.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3657.       entry point even though INT 7A still exists.    For both INT 7A and
  3658.       the FAR entry point, BX contains the function number; IPX is
  3659.       sometimes called internally with BX bit 15 set, which causes the
  3660.       handler to bypass some initial checks and an optional call to the
  3661.       IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3662.       (see #02926)
  3663. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  3664. --------N-7A----BX0000-----------------------
  3665. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  3666.     BX = 0000h
  3667.     AL = socket longevity
  3668.         00h open until close or terminate
  3669.         FFh open until close
  3670.     DX = socket number (high byte in DL)
  3671.         0000h dynamic allocation
  3672.         else  socket to open (see #03809)
  3673. Return: AL = return code
  3674.         00h success
  3675.         DX = socket number
  3676.         FEh socket table full
  3677.         FFh socket already open
  3678. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  3679.       programs should normally use AL=00h
  3680.     IPX can be configured to support up to 150 open sockets on a
  3681.       workstation, and defaults to 20
  3682.     this function is supported by Advanced NetWare 1.02+
  3683. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  3684.  
  3685. (Table 03809)
  3686. Values for IPX socket number:
  3687.  0451h    File Service (NetWare Core Protocol)
  3688.  0452h    Service Advertising Protocol (see #03817)
  3689.  0453h    Routing Information Packet (see #03820)
  3690.  0455h    NetBIOS Packet
  3691.  0456h    diagnostics
  3692.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  3693.  2222h    NetWare Core Protocol
  3694.  4000h-7FFFh used for dynamic allocation
  3695.  4444h    Brightwork Development's SiteLock server
  3696.  5555h    Brightwork Development's SiteLock client (workstation)
  3697.  8000h-FFFFh assigned by Novell
  3698.  869Ch    ID Software's DOOM
  3699. Note:    SiteLock is an application metering product using IPX to communicate
  3700.       between the application and the license server
  3701. --------N-7A----BX0001-----------------------
  3702. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  3703.     BX = 0001h
  3704.     DX = socket number (high byte in DL) (see #03809)
  3705. Notes:    also cancels events set by any Event Control Blocks for the socket
  3706.     the program must close all open sockets before terminating
  3707.     this function is supported by Advanced NetWare 1.02+
  3708. SeeAlso: BX=0000h
  3709. --------N-7A----BX0002-----------------------
  3710. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  3711.     BX = 0002h
  3712.     ES:SI -> target internetwork address (see #03824 at INT 7A/BX=000Bh)
  3713.     ES:DI -> 6-byte buffer for local target
  3714. Return: AL = return code
  3715.         00h success
  3716.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  3717.               packet
  3718.            ES:DI -> local target
  3719.         FAh unsuccessful (no path to destination)
  3720. Notes:    the internetwork address consists of a 4-byte network address followed
  3721.       by a 6-byte node address.  The local target is only a 6-byte node
  3722.       address.  If the target is in the same network, the local target is
  3723.       just the node address of target; otherwise, the local target is the
  3724.       node address of the bridge that leads to the target.
  3725.     this function may be called from inside IPX and AES Event Service
  3726.       Routines, but not from other interrupt handlers
  3727.     this function is supported by Advanced NetWare 1.02+
  3728. SeeAlso: BX=0009h
  3729. --------N-7A----BX0003-----------------------
  3730. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  3731.     BX = 0003h
  3732.     ES:SI -> Event Control Block (see #03810,#03811)
  3733. Notes:    returns immediately; IPX attempts to send the packet in the background
  3734.     this function is supported by Advanced NetWare 1.02+
  3735.     this function is nearly identical to BX=000Fh, except that it always
  3736.       copies the source address into the IPX header assumed to be at the
  3737.       beginning of the first fragment
  3738. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  3739.  
  3740. Format of IPX Event Control Block:
  3741. Offset    Size    Description    (Table 03810)
  3742.  00h    DWORD    Link
  3743.  04h    DWORD    -> Event Service Routine (00000000h if none) (see #03814)
  3744.  08h    BYTE    in use flag (see #03812)
  3745.  09h    BYTE    completion code (see #03813)
  3746.  0Ah    WORD    (big-endian) socket number (see #03809)
  3747.  0Ch  4 BYTEs    IPX workspace
  3748.  10h 12 BYTEs    driver workspace
  3749.  1Ch  6 BYTEs    immediate local node address
  3750.  22h    WORD    fragment count
  3751.  24h    var    fragment descriptors
  3752.         Offset    Size    Description
  3753.          00h    DWORD    -> fragment data
  3754.          04h    WORD    size of fragment in bytes.
  3755. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  3756.       On call, the in use flag is zero if the ECB has been handled,
  3757.       non-zero otherwise. If the flag is zero, the completion code holds
  3758.       the result of the event.
  3759.     the first fragment should start with an IPX header (see #03815)
  3760.     all fragments are concatenated and sent in one piece
  3761.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  3762. SeeAlso: #03811
  3763.  
  3764. Format of AES-ECB:
  3765. Offset    Size    Description    (Table 03811)
  3766.  00h    DWORD    Link
  3767.  04h    DWORD    ESR (Event Service Routine) address (see #03814)
  3768.  08h    BYTE    in use flag (see #03812)
  3769.  09h  5 BYTEs    AES workspace
  3770. SeeAlso: #03810
  3771.  
  3772. (Table 03812)
  3773. Values for ECB in use flag:
  3774.  00h    available
  3775.  E0h    AES temporary
  3776.  F6h    \ special IPX/SPX processing for v3.02+
  3777.  F7h    /
  3778.  F8h    IPX in critical section
  3779.  F9h    SPX listening
  3780.  FAh    processing
  3781.  FBh    holding
  3782.  FCh    AES waiting
  3783.  FDh    AES couting down delay time
  3784.  FEh    awaiting packet reception
  3785.  FFh    sending packet
  3786. SeeAlso: #03810,#03811,#03813
  3787.  
  3788. (Table 03813)
  3789. Values for ECB completion code:
  3790.  00h    success
  3791.  ECh    remote terminated connection without acknowledging packet
  3792.  EDh    abnormal connection termination
  3793.  EEh    invalid connection ID
  3794.  EFh    SPX connection table full
  3795.  F9h    event should not be cancelled
  3796.  FAh    cannot establish connection with specified destination
  3797.  FCh    cancelled
  3798.  FDh    malformed packet
  3799.  FEh    packet undeliverable
  3800.  FFh    physical error
  3801. SeeAlso: #03810,#03812
  3802.  
  3803. (Table 03814)
  3804. Values Event Service Routine is called with:
  3805.     AL = caller's identity (00h = AES, FFh = IPX)
  3806.     ES:SI -> event control block
  3807.     interrupts disabled
  3808. Return: all registers preserved
  3809. SeeAlso: #03810,#03815
  3810.  
  3811. Format of IPX header:
  3812. Offset    Size    Description    (Table 03815)
  3813.  00h    WORD    (big-endian) checksum
  3814.  02h    WORD    (big-endian) length in bytes of total packet
  3815.  04h    BYTE    transport control
  3816.  05h    BYTE    packet type (see #03816)
  3817.  06h 10 BYTEs    destination internetwork address
  3818.  10h    WORD    (big-endian) destination socket
  3819.  12h 10 BYTEs    source internetwork address
  3820.  1Ch    WORD    (big-endian) source socket
  3821. Notes:    an IPX packet has the identical format as a Xerox Network Standard
  3822.       (XNS) packet
  3823.     the application must set packet type, destination address, and
  3824.       destination socket; IPX/SPX set the remaining fields
  3825. SeeAlso: #03810,#03826
  3826.  
  3827. (Table 03816)
  3828. Values for IPX packet type:
  3829.  00h    unknown packet type
  3830.  01h    routing information packet
  3831.  02h    echo packet
  3832.  03h    error packet
  3833.  04h    packet exchange packet (always use this one for data)
  3834.  05h    SPX packet (see #03826)
  3835.  11h    NetWare Core Protocol (also used by Service Advertising Protocol)
  3836.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  3837.  15h-1Eh experimental protocols
  3838. Note:    undocumented packet type 14h will cross up to 16 networks deep in
  3839.       all directions; as Aaron Martin of Origin Systems discovered, the
  3840.       first 64 bytes of the IPX data in such packets should be considered
  3841.       reserved, as IPX places the traversed server nodes there.
  3842.  
  3843. Format of Service Advertising Protocol Service Query Packet:
  3844. Offset    Size    Description    (Table 03817)
  3845.  00h 30 BYTEs    IPX header
  3846.  1Eh    WORD    (big-endian) query type
  3847.         0001h general find service
  3848.         0003h find nearest server
  3849.  20h    WORD    (big-endian) server type
  3850.         (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL")
  3851. SeeAlso: #03818
  3852.  
  3853. Format of Service Advertising Protocol Server Identification Packet:
  3854. Offset    Size    Description    (Table 03818)
  3855.  00h 30 BYTEs    IPX header
  3856.  1Eh    WORD    (big-endian) response type
  3857.         0002h general service
  3858.         0004h nearest service
  3859.  20h 64N BYTEs    server entries (1-7) (see #03819)
  3860. SeeAlso: #03817,#03820
  3861.  
  3862. Format of SAP server entry:
  3863. Offset    Size    Description    (Table 03819)
  3864.  00h    WORD    (big-endian) server type
  3865.         (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL")
  3866.  02h 48 BYTEs    ASCIZ server name
  3867.  32h  2 WORDs    (big-endian) network number
  3868.  34h  3 WORDs    (big-endian) node number
  3869.  3Ch    WORD    (big-endian) socket number
  3870.  3Eh    WORD    (big-endian) number of hops between caller and server
  3871.         10h = Server Shutdown Advertising Packet
  3872. SeeAlso: #03818
  3873.  
  3874. Format of IPX Routing Information packet:
  3875. Offset    Size    Description    (Table 03820)
  3876.  00h 30 BYTEs    IPX header
  3877.  1Eh    WORD    operation (0001h request, 0002h response)
  3878.  20h 8N BYTEs    network entries (1-50) (see #03821)
  3879. SeeAlso: #03818
  3880.  
  3881. Format of RIP network entry:
  3882. Offset    Size    Description    (Table 03821)
  3883.  00h    DWORD    network number (FFFFFFFFh = general request)
  3884.  04h    WORD    (response) number of hops
  3885.  06h    WORD    (response) number of clock ticks to reach destination
  3886. --------N-7A----BX0004-----------------------
  3887. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  3888.     BX = 0004h
  3889.     ES:SI -> Event Control Block (see BX=0003h)
  3890. Return: AL = status
  3891.         00h successful
  3892.         FFh no listening socket for packet
  3893. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  3894.       does not wait for a packet to arrive
  3895. Notes:    the application must open a socket and initialize the ECB's ESR
  3896.       address, socket number, fragment count, and fragment descriptor
  3897.       fields before invoking this function
  3898.     there is no limit on the number of ECBs which may simultaneously be
  3899.       listening on a socket
  3900.     this function is supported by Advanced NetWare 1.02+
  3901. SeeAlso: BX=0000h,BX=0003h
  3902. --------N-7A----BX0005-----------------------
  3903. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  3904.     BX = 0005h
  3905.     AX = delay time in clock ticks
  3906.     ES:SI -> Event Control Block (see BX=0003h)
  3907. Note:    this function is supported by Advanced NetWare 1.02+
  3908. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  3909. --------N-7A----BX0006-----------------------
  3910. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  3911.     BX = 0006h
  3912.     ES:SI -> Event Control Block (see BX=0003h)
  3913. Return: AL = return code (see #03822)
  3914. Notes:    cannot cancel packets which the node's driver has already sent
  3915.     this function is supported by Advanced NetWare 1.02+
  3916. SeeAlso: BX=0005h
  3917.  
  3918. (Table 03822)
  3919. Values for IPX return code:
  3920.  00h    success
  3921.  F9h    event in use
  3922.  FCh    event cancelled
  3923.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  3924. --------N-7A----BX0007-----------------------
  3925. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  3926.     BX = 0007h
  3927.     AX = delay time
  3928.     ES:SI -> Event Control Block (see BX=0003h)
  3929. Note:    this function is supported by Advanced NetWare 1.02+
  3930. SeeAlso: BX=0006h
  3931. --------N-7A----BX0008-----------------------
  3932. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  3933.     BX = 0008h
  3934. Return: AX = interval marker in clock ticks (big-endian???)
  3935. Notes:    may be used to measure the time elapsed between two events, up to one
  3936.       hour
  3937.     this function is supported by Advanced NetWare 1.02+
  3938. SeeAlso: BX=0005h
  3939. --------N-7A----BX0009-----------------------
  3940. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  3941.     BX = 0009h
  3942.     ES:SI -> buffer for own internetwork address (see #03823)
  3943. Return: ES:SI buffer filled
  3944.     SI destroyed
  3945. Note:    this function is supported by Advanced NetWare 1.02+
  3946. SeeAlso: BX=0002h,BX=000Bh
  3947.  
  3948. Format of IPX internetwork address:
  3949. Offset    Size    Description    (Table 03823)
  3950.  00h  4 BYTEs    (big-endian) network number
  3951.  04h  6 BYTEs    (big-endian) node number within network
  3952. --------N-7A----BX000A-----------------------
  3953. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  3954.     BX = 000Ah
  3955. Desc:    this call indicates that the application is idle and permits the IPX
  3956.       driver to do some work
  3957. Note:    this function is supported by Advanced NetWare 1.02+
  3958. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  3959. --------N-7A----BX000B-----------------------
  3960. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  3961.     BX = 000Bh
  3962.     ES:SI -> internetwork address (see #03824)
  3963. Return: nothing
  3964. Notes:    this function permits the network software on the remote machine to
  3965.       remove any virtual connection with the calling machine
  3966.     only use in point-to-point networks
  3967.     should never be called from within an Event Service Routine
  3968.     this function is supported by Advanced NetWare 1.02+
  3969. SeeAlso: BX=0002h,BX=0009h
  3970.  
  3971. Format of IPX internetwork address:
  3972. Offset    Size    Description    (Table 03824)
  3973.  00h  4 BYTEs    (big-endian) destination network
  3974.  04h  6 BYTEs    (big-endian) destination node
  3975.  0Ah  2 BYTEs    (big-endian) destination socket
  3976. --------N-7A----BX000C-----------------------
  3977. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  3978.     BX = 000Ch
  3979.     CX:DX = global network address (see INT 7A/BX=0002h)
  3980.     ES:DI -> "OSINCRITICALSECTION" flag
  3981.     DS:SI -> current mode for socket
  3982. Note:    the address cannot be changed once it has been initialized
  3983. SeeAlso: INT 7A/BX=0024h
  3984. --------N-7A----BX000D-----------------------
  3985. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  3986.     BX = 000Dh
  3987. Return: AX = maximum packet size
  3988.     CX = retry count
  3989. SeeAlso: BX=001Ah
  3990. --------N-7A----BX000E-----------------------
  3991. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  3992.     BX = 000Eh
  3993. Return: nothing
  3994. Notes:    this function terminates all sockets opened with the current mode; this
  3995.       may be intended for future enhancements as the socket mode never
  3996.       changes in v2.15
  3997.     called by the NetWare shell if a program terminates
  3998. --------N-7A----BX000F-----------------------
  3999. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  4000.     BX = 000Fh
  4001.     ES:SI -> Event Control Block (see #03810 at BX=0003h)
  4002.         IPX header's checksum field must be set to FFFFh (see #03815)
  4003.         IPX header's total-length field must be set
  4004. Note:    nearly identical to function 0003h, but does not copy address into
  4005.       the first fragment, and bypasses normal error checking
  4006. SeeAlso: BX=0003h
  4007. --------N-7A----BX0010-----------------------
  4008. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  4009.     BX = 0010h
  4010.     AL = 00h
  4011. Return: AL = status
  4012.         00h if SPX not installed
  4013.         F0h if IPX not installed
  4014.         FFh if SPX loaded
  4015.         BH = SPX major version
  4016.         BL = SPX minor version
  4017.         CX = maximum SPX connections
  4018.         DX = SPX connections available
  4019. Notes:    this function is supported by Advanced NetWare 2.1+
  4020.     this interrupt is used for IPX/SPX access in NetWare versions through
  4021.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  4022.       entry point even though INT 7A still exists.    For both INT 7A and
  4023.       the FAR entry point, BX contains the function number
  4024.     IPX is sometimes called internally with BX bit 15 set, which causes the
  4025.       entry point handler to bypass some checks and an optional call to
  4026.       the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  4027.       (see #02926)
  4028. SeeAlso: BX=0015h
  4029. --------N-7A----BX0011-----------------------
  4030. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  4031.     BX = 0011h
  4032.     AL = retry count
  4033.     AH = watchdog flag
  4034.     ES:SI -> Event Control Block (see #03810 at BX=0003h)
  4035. Return: AL = status (00h,EFh,FDh,FFh) (see #03825)
  4036.     DX = assigned connection ID number
  4037. Desc:    attempt to establish a connection with a listening socket
  4038. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  4039.       that NetWare can perform its internal packet exchanges
  4040.     the first fragment should start with a SPX header (see #03826).    Fill
  4041.       in all destination addresses.
  4042.     this function is supported by Advanced NetWare 2.1+
  4043. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  4044.  
  4045. (Table 03825)
  4046. Values for SPX function status:
  4047.  00h    attempting to contact destination socket
  4048.  EEh    no such connection
  4049.  EFh    local connection table full
  4050.  FDh    buffer size not 42 or fragment count not 1
  4051.  FFh    sending socket not open
  4052.  
  4053. Format of SPX header:
  4054. Offset    Size    Description    (Table 03826)
  4055.  00h    WORD    (big-endian) checksum
  4056.  02h    WORD    (big-endian) length in bytes of total packet
  4057.  04h    BYTE    transport control
  4058.  05h    BYTE    packet type (see #03816 at INT 7A/BX=0003h)
  4059.  06h 10 BYTEs    destination internet address
  4060.  10h    WORD    (big-endian) destination socket
  4061.  12h 10 BYTEs    source internet address
  4062.  1Ch    WORD    (big-endian) source socket
  4063.  1Eh    BYTE    connection control (see #03827)
  4064.  1Fh    BYTE    datastream type
  4065.         FEh terminate connection request packet
  4066.         FFh terminate connection acknowledgement packet
  4067.         other user-defined, ignored by SPX
  4068.  20h    WORD    (big-endian) source connection ID
  4069.  22h    WORD    (big-endian) destination connection ID
  4070.  24h    WORD    (big-endian) sequence number
  4071.  26h    WORD    (big-endian) acknowledge number
  4072.  28h    WORD    (big-endian) allocation number
  4073. SeeAlso: #03815
  4074.  
  4075. Bitfields for SPX connection control:
  4076. Bit(s)    Description    (Table 03827)
  4077.  3-0    unused???
  4078.  4    end of message
  4079.  5    reserved
  4080.  6    acknowledgement required
  4081.  7    system packet
  4082. --------N-7A----BX0012-----------------------
  4083. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  4084.     BX = 0012h
  4085.     AH = watchdog flag (00h disabled, 01h enabled)
  4086.     AL = retry count (00h = default)
  4087.     ES:SI -> Event Control Block (see #03810 at BX=0003h)
  4088. Return: nothing
  4089. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  4090.       that NetWare can perform its internal packet exchanges
  4091.     this function is supported by Advanced NetWare 2.1+
  4092. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  4093. --------N-7A----BX0013-----------------------
  4094. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  4095.     BX = 0013h
  4096.     DX = connection ID to terminate
  4097.     ES:SI -> Event Control Block (see #03810 at BX=0003h)
  4098. Note:    this function is supported by Advanced NetWare 2.1+
  4099. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  4100. --------N-7A----BX0014-----------------------
  4101. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  4102.     BX = 0014h
  4103.     DX = connection ID to terminate
  4104. Return: nothing
  4105. Notes:    this function is supported by Advanced NetWare 2.1+
  4106.     this function does not tell the other side that the connection has been
  4107.       terminated
  4108.     also aborts any outstanding Establish Connection, Terminate Connection,
  4109.       and Send Sequenced Packet commands
  4110. SeeAlso: BX=0011h,BX=0013h
  4111. --------N-7A----BX0015-----------------------
  4112. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  4113.     BX = 0015h
  4114.     DX = connection ID
  4115.     ES:SI -> status buffer (see #03828)
  4116. Return: AL = return code (00h,EEh) (see also #03825)
  4117.         00h connection still valid
  4118.         ES:SI -> status buffer filled
  4119. Note:    this function is supported by Advanced NetWare 2.1+
  4120. SeeAlso: BX=0010h,BX=0011h
  4121.  
  4122. Format of SPX status buffer:
  4123. Offset    Size    Description    (Table 03828)
  4124.  00h    BYTE    connection state
  4125.         01h waiting to establish connection
  4126.         02h starting (attempting to create connection)
  4127.         03h connection established
  4128.         04h terminating
  4129.  01h    BYTE    watchdog flag
  4130.         bit 0: used internally by SPX
  4131.         bit 1: SPX watchdog is monitoring connection
  4132.         bits 2-7 used internally by SPX
  4133.  02h    WORD    (big-endian) source connection ID
  4134.  04h    WORD    (big-endian) destination connection ID
  4135.  06h    WORD    (big-endian) sequence number of next packet sent
  4136.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  4137.           next received packet
  4138.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  4139.           without ACK from local SPX
  4140.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  4141.           remote SPX expects to receive
  4142.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  4143.           local SPX may send
  4144.  10h    WORD    (big-endian) connection socket
  4145.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  4146.  18h 10 BYTEs    destination internetwork address (see #03824 at INT 7A/BX=000Bh)
  4147.  22h    WORD    (big-endian) retransmit count
  4148.  24h    WORD    (big-endian) estimated roundtrip delay
  4149.  26h    WORD    (big-endian) retransmitted packets
  4150.  28h    WORD    (big-endian) suppressed packets
  4151.  2Ah 12 BYTEs    ??? (v2.15)
  4152. --------N-7A----BX0016-----------------------
  4153. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  4154.     BX = 0016h
  4155.     DX = connection ID
  4156.     ES:SI -> Event Control Block (see BX=0003h)
  4157. Notes:    this function is supported by Advanced NetWare 2.1+
  4158.     CX may need to be 0001h ???
  4159. SeeAlso: BX=0011h,BX=0017h
  4160. --------N-7A----BX0017-----------------------
  4161. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  4162.     BX = 0017h
  4163.     DX = connection ID (unused in v2.15)
  4164.     ES:SI -> Event Control Block (see BX=0003h)
  4165. Notes:    this function is supported by Advanced NetWare 2.1+
  4166.     CX may need to be 0001h ???
  4167. SeeAlso: BX=0011h,BX=0016h
  4168. --------N-7A----BX0018-----------------------
  4169. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  4170.     BX = 0018h
  4171.     ES:SI -> diagnostic element (see #03829) to be added to Diagnostic Queue
  4172. Note:    this function is supported on file servers only under v2.15; v3.02 also
  4173.       supports it on workstations
  4174. SeeAlso: BX=0019h
  4175.  
  4176. Format of IPX diagnostic element:
  4177. Offset    Size    Description    (Table 03829)
  4178.  00h    DWORD    pointer to next diagnostic element
  4179.  04h    DWORD    pointer to function for ???
  4180.  08h    DWORD    pointer to function for ???
  4181. --------N-7A----BX0019-----------------------
  4182. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  4183.     BX = 0019h
  4184.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  4185. Note:    this function is supported on file servers only under v2.15; v3.02 also
  4186.       supports it on workstations
  4187. SeeAlso: BX=0018h
  4188. --------N-7A----BX001A-----------------------
  4189. INT 7A - Novell NetWare - IPX Driver - GET DRIVER MAXIMUM PACKET SIZE
  4190.     BX = 001Ah
  4191. Return: AX = maximum packet size with preamble (at least 576 bytes)
  4192.     CX = IPX retry count
  4193.     DS,FLAGS preserved
  4194. SeeAlso: BX=000Dh
  4195. --------N-7A----BX001B-----------------------
  4196. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  4197.     BX = 001Bh
  4198.     ???
  4199. Return: ???
  4200. Notes:    this function is supported on file servers only under v2.15; v3.02 also
  4201.       supports it on workstations
  4202.     used by NetWare Access Server, which may call INT 15/AX=1117h with
  4203.       BX=0000h in some cases (it uses a modified DESQview)
  4204. --------N-7A----BX001C-----------------------
  4205. INT 7A U - Novell NetWare - NetWare Access Server - GET ???
  4206.     BX = 001Ch
  4207. Return: AX = length of ???
  4208.     ES:BX -> ???
  4209. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  4210. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh
  4211. --------N-7A----BX001D-----------------------
  4212. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
  4213.     BX = 001Dh
  4214. Return: DX = socket number chosen by IPX
  4215.     ES:SI -> ECB in IPX's code segment (will be listening)
  4216.     BX corrupted
  4217. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  4218. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh
  4219. --------N-7A----BX001E-----------------------
  4220. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
  4221.     BX = 001Eh
  4222. Return: ES:SI -> ECB
  4223.     BX corrupted
  4224. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  4225. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh
  4226. --------N-7A----BX001F-----------------------
  4227. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX INFORMATION
  4228.     BX = 001Fh
  4229.     DX = 0000h
  4230. Return: AX = ???
  4231.     BX:CX -> ??? entry point (see #03830) (undocumented)
  4232.     DX = feature flags
  4233.         bit 0: IPXODI rather than dedicated IPX
  4234.         bit 1: checksumming functions 0020h-0022h supported
  4235.     ES:SI -> array of words containing used socket number (undocumented);
  4236.         0000h ends array
  4237.     all other registers except DS and FLAGS may be destroyed
  4238. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  4239.       bundled with Novell DOS 7
  4240. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  4241.  
  4242. (Table 03830)
  4243. Call IPXODI entry point with:
  4244.     ES:SI -> ECB??? (offset 24h is far pointer to ??? data)
  4245. --------N-7A----BX0020-----------------------
  4246. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  4247.     BX = 0020h
  4248.     ES:SI -> ECB (see #03810 at INT 7A/BX=0003h)
  4249. Return: DS,FLAGS preserved
  4250.     BX,BP corrupted (documented as potentially destroying all other regs)
  4251. Desc:    generate a checksum for the packet data and store it in the IPX
  4252.       checksum field before transmitting the packet
  4253. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  4254. --------N-7A----BX0021-----------------------
  4255. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  4256.     BX = 0021h
  4257.     ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h)
  4258. Return: ES,DS,SI preserved
  4259.     BX,BP corrupted, all other registers potentially destroyed
  4260. Notes:    the checksum and TransportControl fields of the IPX packet are updated
  4261.     this function enables interrupts and is fully reentrant
  4262. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  4263. --------N-7A----BX0022-----------------------
  4264. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  4265.     BX = 0022h
  4266.     ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h)
  4267. Return: AX = status (0000h checksum matches)
  4268.     DS,ES,SI preserved
  4269.     BX,BP corrupted, all other registers potentially destroyed
  4270. Note:    this function enables interrupts and is fully reentrant
  4271. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  4272. --------N-7A----BX0023-----------------------
  4273. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  4274.     BX = 0023h
  4275.     DX = socket number (0000h for dynamic allocation)
  4276.     ES:SI -> Look Ahead handler (see #03831)
  4277.     BP = desired lookahead size (0000h-0080h)
  4278. Return: AL = status
  4279.         00h successful
  4280.         DX = assigned socket number (big-endian)
  4281.         FEh maximum number of sockets already open
  4282.         FFh specific socket already opened by another application
  4283.     DS,FLAGS preserved
  4284.     all other registers may be destroyed
  4285. Notes:    the socket will always be long-lived, and must thus be explicitly
  4286.       closed with INT 7A/BX=0001h before the Look Ahead handler code is
  4287.       removed from memory (i.e. the program terminates)
  4288.     this function is only supported if INT 2F/AX=7A00h returns ES:BX
  4289.       pointing at an IPX version greater than 3.30
  4290.     the desired lookahead size is the smallest-size packet (including IPX
  4291.       header) that should be passed to the lookahead handler when it
  4292.       arrives
  4293. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  4294.  
  4295. (Table 03831)
  4296. Call IPX Look-Ahead handler with:
  4297.     AX = packet's destination socket
  4298.     DS:SI -> look-ahead structure (see #03010 at INT 2F/AX=C000h"LSL")
  4299.     DF clear
  4300.     interrupt disabled (must remain disabled)
  4301. Return: AX = packet use
  4302.         0000h application want packet
  4303.         ES:SI -> ODI ECB (see #03011 at INT 2F/AX=C000h"LSL")
  4304.         8001h application does not want packet
  4305.     ZF set if AX=0000h
  4306.     DS,DI,BP,SS,SP preserved
  4307.     interrupts disabled
  4308. --------N-7A----BX0024-----------------------
  4309. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  4310.     BX = 0024h
  4311.     ES:SI -> buffer containing internetwork address (see #03824)
  4312. Return: BX,CX,SI,DI,ES destroyed
  4313. Note:    this function differs from INT 7A/BX=000Ch in that it unconditionally
  4314.       sets the address
  4315. SeeAlso: INT 7A/BX=000Ch
  4316. --------A-7A0001-----------------------------
  4317. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  4318.     AX = 0001h
  4319.     BX = configuration
  4320.     CX = interface level (0001h)
  4321. Return: AX = status
  4322.         0000h initialization failed
  4323.         0001h pre-v4.0 driver initialized successfully
  4324.         0003h post-v3.1 driver initialized successfully (driver truncates
  4325.           excessivly long packets)
  4326.     BX = width of graphics area in pixels, or 0000h if using packet
  4327.           communication
  4328.     DX:CX -> packet-mode entry point (see #03832)
  4329. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  4330. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  4331.  
  4332. (Table 03832)
  4333. Call packet-mode entry point with:
  4334. STACK:    DWORD    pointer to request packet (see #03833)
  4335.     WORD    length of packet
  4336.  
  4337. Format of request packet:
  4338. Offset    Size    Description    (Table 03833)
  4339.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  4340. --------A-7A0200BX0000-----------------------
  4341. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  4342.     AX = 0200h
  4343.     BX = 0000h
  4344.     CX = interface level (0001h)
  4345. Return: BX = 0000h (driver uses packet communication)
  4346.     DX:CX -> packet-mode entry point (see #03832)
  4347. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  4348. --------I-7A04-------------------------------
  4349. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  4350.     AH = 04h
  4351.     ???
  4352. Return: ???
  4353. SeeAlso: AH=06h
  4354. --------I-7A06-------------------------------
  4355. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  4356.     AH = 06h
  4357.     ???
  4358. Return: ???
  4359. SeeAlso: AH=04h
  4360. ----------7A07D0-----------------------------
  4361. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  4362.     AX = 07D0h
  4363. Return: AX = ??? (0003h)
  4364.     BX = 0000h
  4365.     DX:CX -> ADI entry point (see AX=0001h)
  4366. SeeAlso: AX=0001h
  4367. --------I-7A09--BX8020-----------------------
  4368. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  4369.     AH = 09h
  4370.     BX = 8020h (synchronous request)
  4371.     CX = 0000h
  4372.     DX = ID of session manager (SESSMGR)
  4373.     AL = service (see #03834)
  4374.     ES:DI -> control block
  4375. Return: ???
  4376.  
  4377. (Table 03834)
  4378. Values for service:
  4379.  01h    get session ID
  4380.  02h    get session info
  4381.  04h    dettach from session
  4382.  05h    attach to session
  4383.  06h    get list of windows available
  4384.  07h    get environment of window
  4385.  08h    get 'PIF' (program information file) info
  4386.  0Ah    get base window ID
  4387.  0Bh    get cursor info
  4388. --------I-7A09--BX8020-----------------------
  4389. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  4390.     AH = 09h
  4391.     BX = 8020h (synchronous request)
  4392.     CX = 0000h
  4393.     DX = ID of keyboard manager
  4394.     AL = service number (see #03835)
  4395.     ES:DI -> control block
  4396. Return: ???
  4397.  
  4398. (Table 03835)
  4399. Values for 3270 Workstation Program keyboard service:
  4400.  01h    connect to keyboard
  4401.  02h    disconnect from keyboard
  4402.  03h    read from keyboard
  4403.  04h    send keystroke to session
  4404.  05h    disable input
  4405.  06h    enable input
  4406.  07h    update status code
  4407. --------I-7A09--BX8020-----------------------
  4408. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  4409.     AH = 09h
  4410.     BX = 8020h (synchronous request)
  4411.     CX = 00FFh
  4412.     DX = ID of window service controller (WSCTRL)
  4413.     AL = service number (see #03836)
  4414.     ES:DI -> control block
  4415. Return: ???
  4416.  
  4417. (Table 03836)
  4418. Values for 3270 Workstation Program window service:
  4419.  01h    connect to WS control
  4420.  02h    disconnect from WS control
  4421.  03h    add a window
  4422.  04h    change window's position on screen
  4423.  05h    change window's size
  4424.  06h    change window's color
  4425.  07h    change window's position in the presentation space
  4426.  08h    hide/unhide toggle
  4427.  09h    enlarge/reduce toggle
  4428.  0Ah    change screen background color
  4429.  0Bh    get window's position on screen
  4430.  0Ch    get window's size
  4431.  0Dh    get window's color
  4432.  0Eh    get window's position in the presentation space
  4433.  0Fh    determine whether hidden
  4434.  10h    determine whether enlarged
  4435.  11h    get background color
  4436.  12h    get window names
  4437.  13h    delete all windows from profile
  4438.  14h    pick active window
  4439.  15h    redraw screen
  4440.  16h    redraw window
  4441.  17h    delete a window from profile
  4442.  18h    get active window
  4443.  19h    get active screen
  4444.  1Ah    get window data
  4445.  1Bh    change window data
  4446.  1Ch    select active screen
  4447. --------I-7A09--BX8020-----------------------
  4448. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  4449.     AH = 09h
  4450.     BX = 8020h
  4451.     CX = 00FFh
  4452.     DX = ID of PCPSM
  4453.     AL = service
  4454.         01h define presentation space
  4455.         02h delete presentation space
  4456.         03h display presentation space
  4457.         04h position cursor in presentation space
  4458.         05h change default presentation space
  4459.     ES:DI -> control block
  4460. Return: ???
  4461. --------I-7A09--BX8020-----------------------
  4462. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  4463.     AH = 09h
  4464.     BX = 8020h
  4465.     CX = 00FFh
  4466.     DX = ID of 3270EML
  4467.     AL = service
  4468.         01h connect
  4469.         02h disconnect
  4470.     ES:DI -> control block
  4471. Return: ???
  4472. --------I-7A09--BX8020-----------------------
  4473. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  4474.     AH = 09h
  4475.     BX = 8020h
  4476.     CX = 00FFh
  4477.     DX = ID of OIAM
  4478.     AL = service
  4479.         01h read Operator Information Area
  4480.         02h read OIA subset
  4481.     ES:DI -> control block
  4482. Return: ???
  4483. Note: the OIA is the 25th line on the Host session
  4484. --------I-7A09--BX8020-----------------------
  4485. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  4486.     AH = 09h
  4487.     BX = 8020h
  4488.     CX = 00FFh
  4489.     DX = ID of XLATE
  4490.     AL = service
  4491.         01h translate from host characters to ASCII and vice versa
  4492.         (determined by control block byte 11)
  4493.     ES:DI -> control block
  4494. Return: ???
  4495. --------I-7A09--BX8020-----------------------
  4496. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  4497.     AH = 09h
  4498.     BX = 8020h
  4499.     CX = 00FFh
  4500.     DX = ID of copy service
  4501.     AL = service
  4502.         01h copy string from one presentation space to another
  4503.         02h copy block from one presentation space to another
  4504.         03h connect to PC session for copy
  4505.         04h disconnect PC session from copy
  4506.     ES:DI -> control block
  4507. Return: ???
  4508. --------I-7A09--BX8020-----------------------
  4509. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  4510.     AH = 09h
  4511.     BX = 8020h
  4512.     CX = 00FFh
  4513.     ES:DI -> control block
  4514.     DX = ID of INDJQRY
  4515.         get environment size
  4516.        = ID of INDJASY
  4517.         request DOS functions from workstation
  4518.        = ID of MEMORY
  4519.         AL = function
  4520.             01h allocate memory
  4521.             02h deallocate memory
  4522.             03h modify allocated size
  4523. Return: ???
  4524. --------I-7A09-------------------------------
  4525. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  4526.     AH = 09h
  4527.     BX = request type (4000h async, 8028h synchronous)
  4528.     CX = 0000h
  4529.     DX = ID of MFIC
  4530.     AL = service (see #03837)
  4531.     ES:DI -> control block
  4532.  
  4533. (Table 03837)
  4534. Values for 3270 Workstation Program host service:
  4535.  01h    connect to host
  4536.  02h    disconnect from host
  4537.  03h    read DFT structured data from host
  4538.  04h    write DFT structured data to host
  4539.  05h    create a host buffer
  4540. --------I-7A13-------------------------------
  4541. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  4542.     AH = 13h
  4543.     ???
  4544. Return: ???
  4545. ----------7A7A-------------------------------
  4546. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  4547.     AH = 7Ah
  4548.     ???
  4549. Return: AX = status
  4550.         0000h success
  4551.         000Eh undefined function code
  4552. Range:    unknown, selected by device driver commandline arguments
  4553. --------I-7A81-------------------------------
  4554. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  4555.     AH = 81h
  4556.     ES:DI -> 8-char blank-padded gate name (see #03838)
  4557. Return: DX = gate ID
  4558.  
  4559. (Table 03838)
  4560. Values for 3270 Workstation Program gate name:
  4561.  "SESSMGR "
  4562.  "KEYBOARD"
  4563.  "WSCTRL  "
  4564.  "MFIC      "
  4565.  "PCPSM      "
  4566.  "3270EML "
  4567.  "COPY      "
  4568.  "XLATE      "
  4569.  "OIAM      "
  4570.  "MEMORY  "
  4571.  "INDJQRY "
  4572.  "INDJASY "
  4573. --------I-7A83-------------------------------
  4574. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  4575.     AH = 83h
  4576.     ???
  4577. Return: ???
  4578. --------I-7AFDCB-----------------------------
  4579. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  4580.     AX = FDCBh
  4581. Return: DX:AX -> PCS/3270 signature block if loaded (see #03839)
  4582.  
  4583. Format of Personal Communications/3270 signature block:
  4584. Offset    Size    Description    (Table 03839)
  4585.  04h    WORD    PCS/3270 signature (5741h)
  4586.  06h    WORD    version (0501h = PCS/3270 v1.0)
  4587. --------I-7AFE01-----------------------------
  4588. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4589.     AX = FE01h
  4590.     ???
  4591. Return: ???
  4592. SeeAlso: AX=FE02h
  4593. --------I-7AFE02-----------------------------
  4594. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4595.     AX = FE02h
  4596.     ???
  4597. Return: ???
  4598. SeeAlso: AX=FE01h
  4599. --------I-7AFF01-----------------------------
  4600. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4601.     AX = FF01h
  4602.     ES:DI -> API function handler routine
  4603. Return: CX = 1200h
  4604. SeeAlso: AX=FF02h,AX=FF03h
  4605. --------I-7AFF02-----------------------------
  4606. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  4607.     AX = FF02h
  4608. Return: CX = 1200h
  4609. SeeAlso: AX=FF01h
  4610. --------I-7AFF03-----------------------------
  4611. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4612.     AX = FF03h
  4613.     ES:DI -> send/receive function handler routine
  4614. Return: CX = 1200h
  4615. SeeAlso: AX=FF01h
  4616. --------I-7AFF04-----------------------------
  4617. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  4618.     AX = FF04h
  4619.     ES:DI -> ???
  4620. Return: CX = 1200h
  4621. --------f-7B---------------------------------
  4622. INT 7B - Btrieve API (single user)
  4623.     DS:DX -> 38-byte parameter record (see #03840)
  4624. Return: return code field set
  4625. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  4626.       check
  4627. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  4628.  
  4629. Format of Btrieve parameter record:
  4630. Offset    Size    Description    (Table 03840)
  4631.  00h    DWORD    pointer to data buffer
  4632.  04h    WORD    data buffer length
  4633.  06h    DWORD    pointer to 90-byte record containing positioning info
  4634.         (should be same for all calls for same file)
  4635.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  4636.         (should be same for all calls for same file)
  4637.  0Eh    WORD    function code (see #03841)
  4638.  10h    DWORD    pointer to file name/key buffer
  4639.  14h    BYTE    key length
  4640.  15h    BYTE    key number
  4641.  16h    DWORD    pointer to status code (see #03842)
  4642.  1Ah    WORD    interface code (version specific)
  4643.         6176h version 5.10
  4644.  
  4645. (Table 03841)
  4646. Values for function code:
  4647.  00h    open
  4648.  01h    close
  4649.  02h    insert
  4650.  03h    update
  4651.  04h    delete
  4652.  05h    get_equal
  4653.  06h    get_next
  4654.  07h    get_prev
  4655.  08h    get_greater
  4656.  09h    get_gr_eql
  4657.  0Ah    get_less
  4658.  0Bh    get_less_eq
  4659.  0Ch    get_first
  4660.  0Dh    get_last
  4661.  0Eh    create
  4662.  0Fh    stat
  4663.  10h    extend
  4664.  11h    set_dir: set directory information
  4665.  12h    get_dir: get directory information
  4666.  13h    begin_trans
  4667.  14h    end_trans
  4668.  15h    abort_trans
  4669.  16h    get_pos: get record position number
  4670.  17h    get_direct: get data by sending record position
  4671.  18h    step_next
  4672.  19h    stop
  4673.  1Ah    version
  4674.  1Bh    unlock
  4675.  1Ch    reset
  4676.  1Dh    set owner
  4677.  1Eh    clear owner
  4678.  1Fh    create supplemental index
  4679.  20h    drop supplemental index
  4680.  21h    step first
  4681.  22h    step last
  4682.  23h    step previous
  4683.  24h    get next extended: get multiple records using a filter
  4684.  25h    get previous extended: get multiple records using a filter
  4685.  26h    step next extended: get multiple records using a filter
  4686.  27h    step previous extended: get multiple records using a filter
  4687.  28h    insert extended: insert one or more records
  4688.  31h    ???
  4689. Notes:    add 50 (32h) to any "get" operation to just return the key data
  4690.     add 100 (64h) for a single-record wait lock (automatically released
  4691.       on next get)
  4692.     add 200 (C8h) for a single-record nowait lock (nowait lock returns
  4693.       error 54h or 55h if record already locked)
  4694.     add 300 (12Ch) for a multiple-record wait lock (not released until
  4695.       unlock called)
  4696.     add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  4697.       error 54h or 55h if record already locked)
  4698.  
  4699. (Table 03842)
  4700. Values for Btrieve status code:
  4701.  00h    successful
  4702.  01h    invalid operation
  4703.  02h    I/O error
  4704.  03h    file not open
  4705.  04h    key value not found
  4706.  05h    duplicate key value
  4707.  06h    invalid key number
  4708.  07h    different key number
  4709.  08h    invalid positioning
  4710.  09h    end of file
  4711.  0Ah    modifiable key value error
  4712.  0Bh    invalid file name
  4713.  0Ch    file not found
  4714.  0Dh    extended file error
  4715.  0Eh    pre-image open error
  4716.  0Fh    pre-image I/O error
  4717.  10h    expansion error
  4718.  11h    close error
  4719.  12h    disk full
  4720.  13h    unrecoverable error
  4721.  14h    record manager inactive
  4722.  15h    key buffer too short
  4723.  16h    data buffer length overrun
  4724.  17h    position block length
  4725.  18h    page size error
  4726.  19h    create I/O error
  4727.  1Ah    number of keys
  4728.  1Bh    invalid key position
  4729.  1Ch    invalid record length
  4730.  1Dh    invalid key length
  4731.  1Eh    not a Btrieve file
  4732.  1Fh    file already extended
  4733.  20h    extended I/O error
  4734.  22h    invalid extension name
  4735.  23h    directory error
  4736.  24h    transaction error
  4737.  25h    transaction is active
  4738.  26h    transaction control file I/O error
  4739.  27h    end/abort transaction error
  4740.  28h    transaction max files
  4741.  29h    operation not allowed
  4742.  2Ah    incomplete accelerated access
  4743.  2Bh    invalid record address
  4744.  2Ch    null key path
  4745.  2Dh    inconsistent key flags
  4746.  2Eh    access to file denied
  4747.  2Fh    maximum open files
  4748.  30h    invalid alternate sequence definition
  4749.  31h    key type error
  4750.  32h    owner already set
  4751.  33h    invalid owner
  4752.  34h    error writing cache
  4753.  35h    invalid interface
  4754.  36h    variable page error
  4755.  37h    autoincrement error
  4756.  38h    incomplete index
  4757.  39h    expanded memory error
  4758.  3Ah    compression buffer too short
  4759.  3Bh    file already exists
  4760.  3Ch    reject count reached
  4761.  3Dh    work space too small
  4762.  3Eh    incorrect descriptor
  4763.  3Fh    invalid extended insert
  4764.  40h    filter limit reached
  4765.  41h    incorrect field offset
  4766.  4Ah    automatic transaction abort
  4767.  4Dh    Btrieve engine busy or resource locked by another user
  4768.  4Eh    deadlock detected
  4769.  50h    conflict
  4770.  51h    lock error
  4771.  52h    lost position
  4772.  53h    read outside transaction
  4773.  54h    record in use
  4774.  55h    file in use
  4775.  56h    file table full
  4776.  57h    handle table full
  4777.  58h    incompatible open mode
  4778.  5Ah    redirected device table full
  4779.  5Bh    server error
  4780.  5Ch    transaction table full
  4781.  5Dh    incompatible lock type
  4782.  5Eh    permission error
  4783.  5Fh    session no longer valid
  4784.  60h    communications environment error
  4785.  61h    data message too small
  4786.  62h    internal transaction error
  4787. --------I-7B---------------------------------
  4788. INT 7B - Eicon Access API (3270/5250 gateways)
  4789. SeeAlso: INT 5C"NetBIOS"
  4790. --------E-7B---------------------------------
  4791. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  4792. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4793.       early versions of the extender
  4794.     the newest versions of GO32 dynamically allocate the vectors used
  4795.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4796. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  4797. --------A-7B---------------------------------
  4798. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  4799.     AX = data length (0000h-7FFFh)
  4800.     CX:BX -> data to be plotted
  4801.     DX = vertical position of line on page
  4802. Return: nothing
  4803. Notes:    This interrupt is called by AutoCAD to perform its output
  4804.     A data length of 0000h indicates that a blank line is to be output
  4805. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  4806. --------e-7B---------------------------------
  4807. INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
  4808. Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its
  4809.       communication driver
  4810. ----------7B---------------------------------
  4811. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  4812.     DS:DX -> parameter block (see #03844)
  4813. Return: parameter block updated
  4814.  
  4815. (Table 03843)
  4816. Values for Novell XQL function number:
  4817.  00h    log in
  4818.  01h    log out
  4819.  02h    "tNewFcn"
  4820.  03h    "tFreeFcn"
  4821.  04h    "tMoveFldFcn"
  4822.  05h    "tFieldFcn"
  4823.  06h    "tDescribeFcn"
  4824.  07h    "tFetchFcn"
  4825.  08h    "tComputeFcn"
  4826.  09h    "tOrderFcn"
  4827.  0Ah    "tRestrictFcn"
  4828.  0Bh    "tJoinFcn"
  4829.  0Ch    "tInsertFcn"
  4830.  0Dh    "tUpdateFcn"
  4831.  0Eh    "tUpdallFcn"
  4832.  0Fh    "tRemoveFcn"
  4833.  10h    "tRemallFcn"
  4834.  11h    "tResetFcn"
  4835.  12h    "tTransFcn"
  4836.  13h    "tStatFcn"
  4837.  14h    "tDDCreFcn"
  4838.  15h    "tStoreFcn"
  4839.  16h    "tRecallFcn"
  4840.  17h    "tStopFcn"
  4841.  18h    "tDDFileFcn"
  4842.  19h    "tDDFieldFcn"
  4843.  1Ah    "tDDIndexFcn"
  4844.  1Bh    "tDDModFcn"
  4845.  1Ch    "tDDViewFcn"
  4846.  1Dh    "tDDDrpFcn"
  4847.  1Eh    "tDDPathFcn"
  4848.  1Fh    "tDDAttrFcn"
  4849.  20h    "tDDFcn"
  4850.  21h    "tSecurFcn"
  4851.  22h    "tUserFcn"
  4852.  23h    "tAccessFcn"
  4853.  24h    "tPswdFcn"
  4854.  25h    "tCharFcn"
  4855.  26h    "tVersionFcn"
  4856.  27h    "tCnvFcn"
  4857.  28h    "tValFcn"
  4858.  29h    "tMaskFcn"
  4859. SeeAlso: #03844
  4860.  
  4861. Format of XQL parameter block:
  4862. Offset    Size    Description    (Table 03844)
  4863.  00h  4 BYTEs    signature "XQLP"
  4864.  04h    WORD    function number (see #03843)
  4865.  06h    WORD    handle
  4866.  08h    WORD    status
  4867.  0Ah    WORD    session ID
  4868.  0Ch    var    data record (varies by function)
  4869. ---function 00h---
  4870.  0Ch    DWORD    -> user name
  4871.  10h    DWORD    -> password
  4872.  14h    DWORD    -> dictionary
  4873.  18h    DWORD    -> filepath
  4874.  1Ch    DWORD    -> machine name
  4875.  20h    WORD    process ID
  4876. ---function 01h---
  4877.  no additional fields???
  4878. ---function 02h---
  4879.  0Ch    DWORD    -> filename
  4880.  10h    DWORD    -> owner name
  4881.  14h    WORD    open mode
  4882. ---function 03h---
  4883.  no additional fields???
  4884. ---function 04h---
  4885.  0Ch    WORD    "frompos"
  4886.  0Eh    WORD    "topos"
  4887. ---function 05h---
  4888.  0Ch    WORD    subfunction
  4889.  0Eh    WORD    position
  4890.  10h    WORD    count
  4891.  12h    DWORD    -> field list
  4892. ---function 06h---
  4893.  0Ch    WORD    subfunction
  4894.  0Eh    WORD    length of description
  4895.  10h    WORD    position
  4896.  12h    WORD    count
  4897.  14h    DWORD    pointer to description list
  4898. ---function 07h---
  4899.  0Ch    WORD    data length
  4900.  0Eh    WORD    "op"
  4901.  10h    DWORD    "select"
  4902.  14h    DWORD    "reject"
  4903.  18h    DWORD    pointer to data buffer
  4904. ---function 08h---
  4905.  0Ch    DWORD    -> field name
  4906.  10h    WORD    field type
  4907.  12h    WORD    field size
  4908.  14h    WORD    "flddec"
  4909.  16h    WORD    "explen"
  4910.  18h    DWORD    pointer to "expbuf"
  4911. ---function 09h---
  4912.  0Ch    WORD    count
  4913.  0Eh    DWORD    -> field list
  4914. ---function 0Ah---
  4915.  0Ch    WORD    "newexp"
  4916.  0Eh    WORD    "explen"
  4917.  10h    DWORD    -> "expbuf"
  4918. ---function 0Bh---
  4919.  0Ch    DWORD    -> filename
  4920.  10h    DWORD    -> owner name
  4921.  14h    WORD    type of join
  4922.  16h    WORD    "pCount"
  4923.  18h    DWORD    -> "pNames"
  4924.  1Ch    WORD    "sCount"
  4925.  1Eh    DWORD    -> "sNames"
  4926. ---functions 0Ch, 0Dh, 0Fh---
  4927.  0Ch    WORD    file count
  4928.  0Eh    DWORD    -> file list
  4929.  12h    DWORD    count
  4930.  16h    DWORD    -> buffer
  4931. ---function 0Eh---
  4932.  0Ch    WORD    file count
  4933.  0Eh    DWORD    -> file list
  4934.  12h    WORD    "op"
  4935.  14h    DWORD    "select"
  4936.  18h    DWORD    "reject"
  4937.  1Ch    WORD    count
  4938.  1Eh    DWORD    -> "res"
  4939.  22h    DWORD    -> "comp"
  4940. ---function 10h---
  4941.  0Ch    WORD    file count
  4942.  0Eh    DWORD    -> file list
  4943.  12h    WORD    "op"
  4944.  14h    DWORD    "select"
  4945.  18h    DWORD    "reject"
  4946. ---function 11h---
  4947.  0Ch    DWORD    machine name
  4948. ---function 12h---
  4949.  0Ch    WORD    option
  4950. ---function 13h---
  4951.  0Ch    WORD    subfunction
  4952.  0Eh    WORD    length of buffer
  4953.  10h    DWORD    -> buffer
  4954. ---function 14h---
  4955.  0Ch    WORD    subfunction
  4956.  0Eh    DWORD    -> filename
  4957.  12h    WORD    "create"
  4958.  14h    DWORD    -> pathname
  4959.  18h    DWORD    -> owner name
  4960.  1Ch    WORD    owner access restrictions
  4961.  1Eh    WORD    number of fields
  4962.  20h    DWORD    -> field list
  4963.  24h    WORD    number of keys
  4964.  28h    DWORD    -> key list
  4965.  2Ch    WORD    "buflen"
  4966.  2Eh    DWORD    -> create parameters
  4967. ---function 15h---
  4968.  0Ch    DWORD    -> "StoreName"
  4969.  10h    WORD    length of buffer
  4970.  12h    DWORD    -> buffer
  4971. ---function 16h---
  4972.  0Ch    DWORD    -> "RecallName"
  4973.  10h    WORD    owner number
  4974.  12h    DWORD    -> owner list
  4975.  16h    WORD    open mode
  4976.  18h    WORD    length of buffer
  4977.  1Ah    DWORD    -> buffer
  4978. ---function 17h---
  4979.  no additional fields???
  4980. ---function 18h---
  4981.  0Ch    WORD    "rtype"
  4982.  0Eh    WORD    count
  4983.  10h    DWORD    -> "filebuf"
  4984.  14h    WORD    length of following buffer
  4985.  16h    DWORD    -> output buffer
  4986. ---functions 19h, 1Ah---
  4987.  0Ch    WORD    "rtype"
  4988.  0Eh    WORD    count
  4989.  10h    DWORD    -> field buffer
  4990.  14h    WORD    length of following buffer
  4991.  16h    DWORD    -> output buffer
  4992. ---function 1Bh---
  4993.  0Ch    WORD    subfunction
  4994.  0Eh    DWORD    -> filename
  4995.  12h    WORD    "create"
  4996.  14h    DWORD    -> pathname
  4997.  18h    DWORD    -> owner name
  4998.  1Ch    WORD    owner access restrictions
  4999.  1Eh    WORD    field count
  5000.  20h    DWORD    -> field list
  5001.  24h    WORD    number of keys
  5002.  26h    DWORD    -> list of keys
  5003. ---function 1Ch---
  5004.  0Ch    WORD    count
  5005.  0Eh    DWORD    -> view name
  5006.  12h    WORD    length of following buffer
  5007.  14h    DWORD    -> output buffer
  5008. ---function 1Dh---
  5009.  0Ch    DWORD    -> filename
  5010.  10h    WORD    file type
  5011.  12h    WORD    "deletepath"
  5012. ---function 1Eh---
  5013.  0Ch    WORD    "dirtype"
  5014.  0Eh    DWORD    -> pathname
  5015. ---function 1Fh---
  5016.  0Ch    WORD    function
  5017.  0Eh    DWORD    -> field name
  5018.  12h    WORD    attribute
  5019.  14h    WORD    size of buffer
  5020.  16h    DWORD    -> buffer for attributes
  5021. ---function 20h---
  5022.  0Ch    DWORD    -> directory path
  5023.  10h    WORD    function
  5024. ---function 21h---
  5025.  0Ch    DWORD    -> master password
  5026.  10h    WORD    "securityflag"
  5027. ---function 22h---
  5028.  0Ch    DWORD    -> master password
  5029.  10h    WORD    function (add/modify/remove)
  5030.  12h    DWORD    -> user name
  5031.  16h    DWORD    -> password
  5032.  1Ah    WORD    global rights
  5033.  1Ch    WORD    count
  5034.  1Eh    WORD    length of following buffer
  5035.  20h    DWORD    -> "userbuf"
  5036. ---function 23h---
  5037.  0Ch    DWORD    -> master password
  5038.  10h    DWORD    -> user name
  5039.  14h    WORD    function (allow/deny/getrights)
  5040.  16h    WORD    rights
  5041.  18h    DWORD    -> filename
  5042.  1Ch    WORD    number of field names in following buffer
  5043.  1Eh    DWORD    -> field names
  5044.  22h    WORD    maximum buffer length
  5045.  24h    DWORD    -> output buffer
  5046. ---function 24h---
  5047.  0Ch    DWORD    -> user name
  5048.  10h    DWORD    -> password
  5049. ---function 25h---
  5050.  0Ch    WORD    "charFcn"
  5051.  0Eh    WORD    "charType"
  5052.  10h    WORD    "charValue"
  5053. ---function 26h---
  5054.  0Ch    DWORD    -> buffer
  5055. ---function 27h---
  5056.  0Ch    WORD    option
  5057.  0Eh    WORD    type
  5058.  10h    WORD    size
  5059.  12h    WORD    "dec"
  5060.  14h    WORD    "dsize"
  5061.  16h    DWORD    -> value
  5062.  1Ah    DWORD    -> "retval"
  5063.  1Eh    DWORD    -> mask
  5064.  22h    WORD    "justify"
  5065. ---function 28h---
  5066.  0Ch    DWORD    -> field name
  5067.  10h    WORD    length of buffer
  5068.  12h    DWORD    -> buffer for data
  5069. ---function 29h---
  5070.  0Ch    WORD    option
  5071.  0Eh    WORD    type
  5072.  10h    WORD    size
  5073.  12h    WORD    "dec"
  5074.  14h    WORD    length of mask
  5075.  16h    DWORD    -> mask
  5076. --------A-7B8001-----------------------------
  5077. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  5078.     AX = 8001h
  5079.     BX = file level
  5080.         0000h binary file
  5081.         0001h CAD/camera image file
  5082.         0002h installed ADI driver
  5083.     CX = horizontal size in pixels
  5084.     DX = vertical size in pixels
  5085. Return: AX = status (0000h initialization failed, 0001h init successful)
  5086.     BX = allowed output format
  5087.         0000h monochrome
  5088.         0001h color (4 bits per pixel)
  5089. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  5090. --------A-7B8002-----------------------------
  5091. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  5092.     AX = 8002h
  5093. SeeAlso: AX=8001h,AX=8003h
  5094. --------A-7B8003-----------------------------
  5095. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  5096.     AX = 8003h
  5097. SeeAlso: AX=8001h,AX=8002h
  5098. --------r-7C---------------------------------
  5099. INT 7C U - IBM REXX88PC command language
  5100.     ???
  5101. --------E-7C---------------------------------
  5102. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  5103. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5104.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5105. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5106.       early versions of the extender
  5107.     the newest versions of GO32 dynamically allocate the vectors used
  5108.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5109. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  5110. --------P-7C---------------------------------
  5111. INT 7C - PRINDIR v8.02-8.xx - API
  5112.     AH = function
  5113.        00h set output to Invisible mode
  5114.        01h set output to LPT1
  5115.        02h set output to LPT2
  5116.        03h set output to LPT3
  5117.        04h set output to COM1
  5118.        05h set output to COM2
  5119.        06h set output to COM3
  5120.        07h set output to COM4
  5121.        08h set output to screen
  5122.        09h set output to file
  5123.        0Ah change file path
  5124.            ES:DI -> new path
  5125.            CX = length of path (max 41, but not range-checked)
  5126.        0Bh change file name
  5127.            ES:DI -> new filename
  5128.            CX = length of new name (max 41, but not range-checked)
  5129.        0Ch set redirected device
  5130.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  5131.        0Dh force buffer dump
  5132.        0Eh set display color
  5133.            AL = new color attribute (see #00014 at INT 10/AH=08h)
  5134.        0Fh set popup hotkey
  5135.            AL = hotkey scancode
  5136.        10h toggle byte display
  5137.            AL = new state (00h off, 01h on)
  5138.        11h change buffer flush delay
  5139.            AL = timer ticks before flush
  5140. Return: AX = status
  5141.         0000h successful
  5142.         0001h invalid function or nothing in buffer to be dumped
  5143.         (documented as "nonzero = error")
  5144. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  5145.       Creations
  5146. InstallCheck:    test for the ASCIZ signature "PRINDIR N.NN" (where N.NN is the
  5147.       version number) two bytes beyond the start of the interrupt handler
  5148. Note:    prior versions of PRINDIR used INT 7A instead of INT 7C
  5149. SeeAlso: INT 7A"PRINDIR",INT 2F/AX=7F00h"PRINDIR"
  5150. Index:    hotkeys;PRINDIR
  5151. --------A-7C---------------------------------
  5152. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  5153. Note:    this is the default interrupt vector for rendering hardcopy drivers
  5154.       instead of INT 7A used by AutoCAD drivers
  5155. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  5156. --------N-7C---------------------------------
  5157. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  5158. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5159.       which provides an API on top of it Data Link Interface, allowing the
  5160.       use of any of several network transport layers; this product is
  5161.       called SK-PASSPORT in the USA.
  5162. InstallCheck:    test for the ASCII signature string "UPPS_DLI" immediately
  5163.       preceding the interrupt handler
  5164. Notes:    To find the service interrupt being used by the driver, an application
  5165.       should scan through the interrupt table until it finds an interrupt
  5166.       vector with the "UPPS_DLI" string.
  5167.     There may be more than one DLI loaded, each having its own service
  5168.       interrupt.
  5169. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  5170. Index:    installation check;SK-UPPS
  5171. --------N-7C0000-----------------------------
  5172. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  5173.     AX = 0000h
  5174. Return: AH = major DLI version
  5175.     AL = minor DLI version
  5176.     DX = OEM signature (see #03845)
  5177.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  5178. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  5179.  
  5180. (Table 03845)
  5181. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  5182.  0001h        experimental
  5183.  3343h    ('3C')    3COM
  5184.  4942h    ('IB')    IBM
  5185.  4943h    ('IC')    Intellicom
  5186.  494Eh    ('IN')    Intel
  5187.  4B4Fh    ('KO')    Kodiak
  5188.  4D41h    ('MA')    Madge
  5189.  4E45h    ('NE')    Novell
  5190.  4F43h    ('OC')    Olicom
  5191.  5349h    ('SI')    Siemens
  5192.  534Bh    ('SK')    Schneider & Koch (SysKonnect)
  5193.  5744h    ('WD')    Western Digital
  5194. --------N-7C0001-----------------------------
  5195. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  5196.     AX = 0001h
  5197. Return: AX = completion code (see #03846)
  5198. Note:    the DLI will refuse to unload if there are any protocols
  5199.       (see AX=0007h) or clients (see AX=0010h) active.
  5200. Index:    uninstall;SK-UPPS Data Link Interface
  5201.  
  5202. (Table 03846)
  5203. Values for SK-UPPS completion code:
  5204.  0000h    SUCCESS
  5205.  0005h    INVALID_MULTICAST
  5206.  0006h    BUFFER_TOO_SMALL
  5207.  0007h    NO_BUFFERS_LEFT
  5208.  0008h    NO_RESOURCES_LEFT
  5209.  000Bh    ILLEGAL_PROTOCOL_ID
  5210.  000Ch    PROTOCOL_IN_USE
  5211.  000Dh    NO_MULTICAST_ADDRESS
  5212.  000Fh    PROTOCOLS_ACTIVE
  5213.  0010h    CLIENTS_ACTIVE
  5214.  001Bh    INVALID_MODE
  5215.  001Ch    MODE_NOT_SUPPORTED
  5216.  FFFFh    UNKNOWN_SERVICE
  5217. --------N-7C0002-----------------------------
  5218. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  5219.     AX = 0002h
  5220.     ES:DI -> Status Information Block (SIB) (see #03858)
  5221. Return: AX = completion code (see #03846)
  5222. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  5223. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  5224. --------N-7C0003-----------------------------
  5225. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  5226.     AX = 0003h
  5227.     ES:DI -> new node address (6 bytes)
  5228. Return: AX = completion code (see #03846)
  5229. Note:    the DLI will refuse to change the address if any protocols
  5230.       (see AX=0007h) are active
  5231. SeeAlso: AX=0001h,AX=000Eh
  5232. --------N-7C0004-----------------------------
  5233. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  5234.     AX = 0004h
  5235.     DX = protocol ID (see AX=0007h,#03849)
  5236. Return: AX = completion code (see also #03846)
  5237.         0000h successful
  5238.         ES:BX -> Memory Buffer (Mbuf) (see #03847)
  5239. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  5240.       protocol and later call the protocol's Event Upcall with
  5241.       EV_BUFFER_AVAILABLE (see #03853,#03854) as soon as an Mbuf becomes
  5242.       available.  There will only be one "buffer available" Upcall, even
  5243.       if this function has been called several times before.
  5244. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  5245.  
  5246. Format of SK-UPPS Memory Buffer (Mbuf):
  5247. Offset    Size    Description    (Table 03847)
  5248.  00h    DWORD    -> NEXT Mbuf (linked list)
  5249.  04h    WORD    OFFSET of actual data within DATA area
  5250.  06h  2 BYTEs    reserved (currently unused)
  5251.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  5252.  0Ah  2 BYTEs    reserved (currently unused)
  5253.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  5254.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  5255.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  5256.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  5257. --------N-7C0005-----------------------------
  5258. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  5259.     AX = 0005h
  5260.     ES:BX -> Mbuf (see #03847)
  5261. Return: nothing
  5262. SeeAlso: AX=0004h
  5263. --------N-7C0006-----------------------------
  5264. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  5265.     AX = 0006h
  5266.     ES:BX -> Mbuf (see #03847)
  5267. Return: nothing
  5268. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  5269.       at OFFSET. A complete and valid frame must be stored there. The DLI
  5270.       will only copy the current node address (see AX=0003h) to the
  5271.       source node field of the frame's MAC header.
  5272.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  5273.       of the value found in the LENGTH field.
  5274.     This function returns immediately; the DLI will call the protocol's
  5275.       Transmit Upcall (see #03848) when the frame has been sent.
  5276.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  5277.       Transmit Upcall.
  5278. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  5279.  
  5280. (Table 03848)
  5281. Values SK-UPPS Transmit Upcall is called with:
  5282.     ES:BX -> Mbuf (NEXT field destroyed)
  5283.     interrupts disabled
  5284. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  5285.       header have been bit-swapped to physical address format.
  5286. --------N-7C0007-----------------------------
  5287. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  5288.     AX = 0007h
  5289.     ES:BX -> Protocol Control Block (see #03849)
  5290. Return: AX = completion code (see #03846)
  5291. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5292.       which provides an API on top of its Data Link Interface, allowing the
  5293.       use of any of several network transport layers
  5294. SeeAlso: AX=0008h,AX=000Bh
  5295.  
  5296. Format of SK-UPPS Protocol Control Block (PCB):
  5297. Offset    Size    Description    (Table 03849)
  5298.  00h    WORD    (big-endian) protocol type
  5299.  02h    WORD    protocol mode (see #03850)
  5300.  04h    DWORD    -> Receive Upcall routine (see #03851)
  5301.  08h    DWORD    -> Transmit Upcall routine
  5302.  0Ch    DWORD    -> Event Upcall routine (see #03853)
  5303.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  5304.  14h    WORD    protocol ID will be returned here (always non-zero)
  5305.  
  5306. Bitfields for SK-UPPS protocol mode:
  5307. Bit(s)    Description    (Table 03850)
  5308.  0    promiscuous mode; protocol receives all frames regardless of their
  5309.       destination (PROTOCOL TYPE must be FFFFh)
  5310.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  5311.       DLI's Interrupt Service Routine (see #03854)
  5312.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  5313.       this station (PROTOCOL TYPE must be FFFFh)
  5314.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  5315.  4-5    DLI 2.5+ frame type:
  5316.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  5317.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  5318.           (offset 0) of PROCOTOL TYPE field; LSB must be zero
  5319.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  5320.           field (high-low)
  5321.     11 reserved (currently unused)
  5322.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  5323.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  5324.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  5325.       be shared with other clients
  5326.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  5327.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  5328.  10-15    reserved (currently unused; must be zero)
  5329. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  5330.       mode is set, the protocol receives all frames that did not match
  5331.       any registered frame type (demultiplexor mode).
  5332.     Protocols using "promiscuous", "hook" or "chain" mode should always
  5333.       return from the Receive Upcall with the received Mbuf in ES:BX and
  5334.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  5335.       BUFFER function (see AX=000Fh).
  5336.     Some DLIs do not support all or even any of the "promiscuous",
  5337.       "receive non-LLC" and "receive all multicasts" mode bits.
  5338. SeeAlso: #03849
  5339.  
  5340. (Table 03851)
  5341. Values SK-UPPS Receive Upcall is called with:
  5342.     ES:BX -> Mbuf
  5343.     AX = receive status (see #03852) (also stored in Mbuf's RECEIVE STATUS field)
  5344.     interrupts disabled
  5345. Return: nothing
  5346. SeeAlso: #03853
  5347.  
  5348. Bitfields for SK-UPPS receive status:
  5349. Bit(s)    Description    (Table 03852)
  5350.  0-2    reserved (0), currently unused
  5351.  3    frame check sequence (FCS) error
  5352.  4    overflow (frame too long)
  5353.  5    framing error
  5354.  6    reserved (0), currently unused
  5355.  7    non-LLC frame (see #03850 [bit 8])
  5356.  8-15    reserved (0), currently unused
  5357. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  5358.       matching the specified frame type is received. A received frame is
  5359.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  5360.       is LENGTH bytes.
  5361.     The receive status passed to the Receive Upcall in register AL is
  5362.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  5363.       protocol mode field) or "promiscuous" mode together with "receive
  5364.       error frames" (0 & 3).
  5365.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  5366.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  5367.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  5368.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  5369.  
  5370. (Table 03853)
  5371. Values SK-UPPS Event Upcall is called with:
  5372.     AX = event code (see #03854)
  5373. Return: nothing
  5374. Note:    All Event Upcalls may be ignored by the protocol.
  5375. SeeAlso: #03851
  5376.  
  5377. (Table 03854)
  5378. Values for SK-UPPS Event Upcall event code:
  5379.  00h    EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  5380.  01h    EV_ISR_START        start of Interrupt Service Routine
  5381.  02h    EV_ISR_END        end of ISR (see #03850 [bit 1])
  5382.  03h    EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  5383.  04h    EV_NETWORK_STATUS   DLI 2.8+ network status -- DX=status (see #03855)
  5384.  05h    EV_IO_CONTROL        DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h)
  5385. SeeAlso: #03853
  5386.  
  5387. Bitfields for EV_NETWORK_STATUS in register DX:
  5388. Bit(s)    Description    (Table 03855)
  5389.     Token-Ring        FDDI
  5390.  15    SIGNAL_LOSS        SIGNAL_LOSS
  5391.  14    HARD_ERROR        HARD_ERROR
  5392.  13    SOFT_ERROR        SOFT_ERROR
  5393.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  5394.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  5395.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  5396.  9    reserved        reserved
  5397.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  5398.  7    COUNTER_OVERFLOW    reserved
  5399.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  5400.  5    RING_RECOVERY        NO_RING_OP_STATUS
  5401.  4    reserved        VERSION_MISMATCH
  5402.  3    reserved        STUCK_BYPASS
  5403.  2    reserved        FDDI_EVENT
  5404.  1    reserved        RING_OP_CHANGE
  5405.  0    reserved        reserved
  5406. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  5407. --------N-7C0008-----------------------------
  5408. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  5409.     AX = 0008h
  5410.     BX = protocol ID (see #03849)
  5411. Return: AX = completion code (see #03846)
  5412. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  5413.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  5414.     all multicast addresses registered for this protocol will be disabled.
  5415.     after this function returns, the protocol's Upcall routines will no
  5416.       longer be called.
  5417. SeeAlso: AX=0007h,AX=000Bh
  5418. --------N-7C0009-----------------------------
  5419. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  5420.     AX = 0009h
  5421.     BX = protocol ID (see #03849)
  5422.     ES:DI -> multicast address (6 bytes)
  5423. Return: AX = completion code (see #03846)
  5424. Notes:    The broadcast address is always enabled.
  5425.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  5426.       (AX=0007h) to receive all multicast frames.
  5427. SeeAlso: AX=000Ah,AX=0014h
  5428. --------N-7C000A-----------------------------
  5429. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  5430.     AX = 000Ah
  5431.     BX = protocol ID (see #03849)
  5432.     ES:DI -> multicast address (6 bytes)
  5433. Return: AX = completion code (see #03846)
  5434. SeeAlso: AX=0009h,AX=0014h
  5435. --------N-7C000B-----------------------------
  5436. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  5437.     AX = 000Bh
  5438.     ES:DI -> protocol ID buffer
  5439.     CX = number of 2-byte protocol IDs that may be stored in buffer
  5440. Return: AX = completion code (see #03846)
  5441.     CX = number of active protocols (regardless of value returned in AX)
  5442.     protocol ID buffer filled with active protocol IDs
  5443. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5444.       which provides an API on top of its Data Link Interface, allowing the
  5445.       use of any of several network transport layers
  5446. Note:    If the buffer supplied is too small, CX still contains the total number
  5447.       of active protocols and the buffer has been filled until full.
  5448. SeeAlso: AX=000Ch,AX=0014h
  5449. --------N-7C000C-----------------------------
  5450. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  5451.     AX = 000Ch
  5452.     BX = protocol ID (see #03849,AX=000Bh)
  5453.     ES:DI -> Protocol Status Block (see #03856)
  5454. Return: AX = completion code (see #03846)
  5455. SeeAlso: AX=000Bh,AX=0014h
  5456.  
  5457. Format of SK-UPPS Protocol Status Block (PSB):
  5458. Offset    Size    Description    (Table 03856)
  5459.  00h    DWORD    -> ASCIZ protocol name
  5460.  04h    WORD    protocol mode (see #03850)
  5461.  06h    WORD    protocol type (see AX=0007h)
  5462.  08h    WORD    number of registered multicasts (see AX=0009h,AX=0014h)
  5463. --------N-7C000D-----------------------------
  5464. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  5465.     AX = 000Dh
  5466.     BX = flag: 0=don't clear statistics, 1=clear statistics
  5467.     ES:DI -> Statistics Data Block (see #03857)
  5468. Return: AX = completion code (see #03846)
  5469. SeeAlso: AX=0002h,AX=0015h
  5470.  
  5471. Format of SK-UPPS Statistics Data Block (SDB):
  5472. Offset    Size    Description    (Table 03857)
  5473.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  5474.  04h    DWORD    bytes received
  5475.  08h    DWORD    bytes transmitted
  5476.  0Ch    DWORD    frames received
  5477.  10h    DWORD    frames transmitted
  5478.  14h    DWORD    multicast bytes received
  5479.  18h    DWORD    multicast frames received
  5480.  1Ch    DWORD    unrecognized frames
  5481.  20h    WORD    missed frames
  5482.  22h    WORD    frame check sequence (FCS) errors
  5483.  24h    WORD    framing errors
  5484.  26h    WORD    babbling errors
  5485.  28h    WORD    late collision errors
  5486.  2Ah    WORD    loss of carrier errors
  5487.  2Ch    WORD    16 retries failed errors
  5488.  2Eh    WORD    overflow errors
  5489. Note:    fields 26h through 2Ch are always zero, except in some very old
  5490.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  5491.       more detailed information.
  5492. --------N-7C000E-----------------------------
  5493. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  5494.     AX = 000Eh
  5495.     ES:DI -> Driver Information Block (see #03858)
  5496.     BX = offset of 1st field within DIB to be returned
  5497.     CX = number of bytes to be returned
  5498. Return: AX = completion code (see #03846)
  5499.     CX = number of bytes copied (regardless of value returned in AX)
  5500. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5501.       which provides an API on top of its Data Link Interface, allowing the
  5502.       use of any of several network transport layers
  5503. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  5504.  
  5505. Format of SK-UPPS Driver Information Block (DIB):
  5506. Offset    Size    Description    (Table 03858)
  5507.  00h  6 BYTEs    physical node address (from adapter's ROM)
  5508.  06h  6 BYTEs    current node address (see AX=0003h)
  5509.  0Ch    BYTE    adapter id (defined by OEM)
  5510.  0Dh    BYTE    IRQ line (FFh if none)
  5511.  0Eh    DWORD    -> shared memory (zero if none)
  5512.  12h    DWORD    size of shared memory (zero if none)
  5513.  16h    WORD    base I/O port (zero if none)
  5514.  18h    BYTE    DMA line (FFh if none)
  5515.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  5516.  1Ah    WORD    size of an Mbuf's DATA area (see #03847)
  5517.  1Ch  2 BYTEs    reserved (currently unused)
  5518.  1Eh    WORD    total number of Mbufs the DLI has
  5519.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  5520.           BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  5521.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  5522.  22h    DWORD    -> ASCIZ adapter name
  5523.  26h    WORD    number of I/O ports used (zero if none)
  5524.  28h    DWORD    line speed in bits/sec.
  5525. --------N-7C000F-----------------------------
  5526. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  5527.     AX = 000Fh
  5528.     ES:BX -> Mbuf (see #03847)
  5529. Return: nothing
  5530. Notes:    A protocol may call this function instead of returning the Mbuf
  5531.       directly from the Receive Upcall if it is running in "promiscuous",
  5532.       "hook" or "chain" mode.
  5533. SeeAlso: AX=0007h
  5534. --------N-7C0010-----------------------------
  5535. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  5536.     AX = 0010h
  5537. Return: nothing
  5538. Notes:    An application having no active protocols may call this function to
  5539.       prevent the DLI from unloading.
  5540. SeeAlso: AX=0001h,AX=0011h
  5541. --------N-7C0011-----------------------------
  5542. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  5543.     AX = 0011h
  5544. Return: nothing
  5545. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5546.       which provides an API on top of its Data Link Interface, allowing the
  5547.       use of any of several network transport layers
  5548. SeeAlso: AX=0010h
  5549. --------N-7C0012-----------------------------
  5550. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  5551.     AX = 0012h
  5552.     DX = protocol ID (see #03849)
  5553. Return: AX = completion code (see #03846)
  5554.     if AX=0000h: ES:BX -> Mbuf (see #03847)
  5555. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  5556.       REQUEST BUFFER (AX=0004h) should be used instead.
  5557. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  5558. --------N-7C0013-----------------------------
  5559. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  5560.     AX = 0013h
  5561.     ES:BX -> Mbuf (see #03847)
  5562. Return: nothing
  5563. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  5564.     The Mbuf may no more be used by the protocol in any way (i.e. the
  5565.       Mbuf's IN USE field may not be polled).
  5566. SeeAlso: AX=0004h,AX=0013h
  5567. --------N-7C0014-----------------------------
  5568. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  5569.     AX = 0014h
  5570.     BX = protocol ID (see #03849,AX=000Bh)
  5571.     ES:DI -> multicast address buffer
  5572.     CX = number of 6-byte multicast addresses that may be stored in buffer
  5573. Return: AX = completion code (see #03846)
  5574.     CX = number of registered multicast addresses for this protocol
  5575.       (regardless of value returned in AX)
  5576.     multicast address buffer filled with multicast addresses registered for
  5577.       this protocol
  5578. Note:    If the buffer supplied is too small, CX still contains the total number
  5579.       of registered multicast addresses for this protocol and the buffer
  5580.       has been completely filled
  5581. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  5582. --------N-7C0015-----------------------------
  5583. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  5584.     AX = 0015h
  5585.     ES:DI -> media-specific statistics buffer (see #03859,#03860,#03861)
  5586.     BX = offset of 1st field within MSS to be returned
  5587.     CX = number of bytes to be returned
  5588. Return: AX = completion code (see #03846)
  5589.     CX = number of bytes copied (regardless of value returned in AX)
  5590. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  5591. SeeAlso: AX=0000h,AX=000Dh
  5592.  
  5593. Format of SK-UPPS media-specific statistics for Ethernet:
  5594. Offset    Size    Description    (Table 03859)
  5595.  00h    DWORD    alignment errors
  5596.  04h    DWORD    frame check sequence (FCS) errors
  5597.  08h    DWORD    single collision frames
  5598.  0Ch    DWORD    multiple collision frames
  5599.  10h    DWORD    signal quality error (SQE) test errors
  5600.  14h    DWORD    deferred transmissions
  5601.  18h    DWORD    late collisions
  5602.  1Ch    DWORD    excessive collisions
  5603.  20h    DWORD    internal MAC transmit errors
  5604.  24h    DWORD    carrier sense errors
  5605.  28h    DWORD    excessive deferrals
  5606.  2Ch    DWORD    frame too longs
  5607.  30h    DWORD    in range length errors
  5608.  34h    DWORD    out of range length fields
  5609.  38h    DWORD    internal MAC receive errors
  5610.  
  5611. Format of SK-UPPS media-specific statistics for FDDI:
  5612. Offset    Size    Description    (Table 03860)
  5613.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  5614.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  5615.           5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  5616.  08h    DWORD    SMT frames sent
  5617.  0Ch    DWORD    SMT frames received
  5618.  10h    DWORD    SMT ring up count
  5619.  14h  6 BYTEs    MAC upstream neighbour
  5620.  1Ah  6 BYTEs    MAC downstream neighbour
  5621.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  5622.  24h    DWORD    MAC error counter ( " )
  5623.  28h    DWORD    MAC lost counter ( " )
  5624.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  5625.           is reported as the absolute value of the exponent)
  5626.  2Dh    BYTE    port 2 link error estimate ( " )
  5627.  2Eh  2 BYTEs    reserved (currently unused)
  5628.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  5629.           2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  5630.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  5631.  
  5632. Format of SK-UPPS media-specific statistics for Token-Ring:
  5633. Offset    Size    Description    (Table 03861)
  5634.  00h  6 BYTEs    upstream neighbour
  5635.  06h    WORD    local ring number
  5636.  08h    DWORD    ring up count
  5637.  0Ch    DWORD    signal loss errors
  5638.  10h    DWORD    lobe wire faults
  5639.  14h    DWORD    ring recovery count
  5640.  18h    DWORD    line errors
  5641.  1Ch    DWORD    burst errors
  5642.  20h    DWORD    ARI/FCI errors
  5643.  24h    DWORD    lost frame errors
  5644.  28h    DWORD    receive congestion errors
  5645.  2Ch    DWORD    frame copied errors
  5646.  30h    DWORD    token errors
  5647.  34h    DWORD    DMA bus errors
  5648.  38h    DWORD    DMA parity errors
  5649.  3Ch    DWORD    receive overflow errors
  5650. --------N-7C0016-----------------------------
  5651. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  5652.     AX = 0016h
  5653.     DX = subfunction; bits 14-15 specify direction of I/O:
  5654.         00 no data at all (ES:BX undefined)
  5655.         01 driver -> application (GET)
  5656.         10 application -> driver (SET)
  5657.         11 both directions (GET/SET)
  5658.     ES:BX -> I/O buffer (optional)
  5659.     CX = size of buffer (if ES:BX valid)
  5660. Return: AX = completion code; defined by OEM
  5661. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5662.       which provides an API on top of its Data Link Interface, allowing the
  5663.       use of any of several network transport layers
  5664. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  5665.     subfunction codes are defined by OEMs
  5666. SeeAlso: AX=0001h
  5667. --------N-7C0017-----------------------------
  5668. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  5669.     AX = 0017h
  5670. Return: AX = completion code (see #03846)
  5671. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  5672.     must be called with interrupts disabled; when the client re-enables
  5673.       interrupts, an interrupt will be generated and reported to the client
  5674.       through an Event Upcall (see #03853 [EV_ISR_START/EV_ISR_END])
  5675. SeeAlso: AX=0007h
  5676. --------t-7D---------------------------------
  5677. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  5678. Note:    this interface has been moved to INT 2D; there are no known
  5679.       implementations on INT 7D
  5680. SeeAlso: INT 2D"AMIS",INT 2F"NOTES"
  5681. --------S-7D---------------------------------
  5682. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  5683. SeeAlso: INT 7E"YTERM"
  5684. --------E-7D---------------------------------
  5685. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  5686. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5687.       early versions of the extender
  5688.     the newest versions of GO32 dynamically allocate the vectors used
  5689.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5690. SeeAlso: INT 0D"IRQ5",INT 7C"GO32",INT 7E"GO32"
  5691. --------U-7D---------------------------------
  5692. INT 7D - HyperPAD v2.2 - API ACCESS
  5693. Note:    this vector is hooked but immediately passed on (without checking
  5694.       whether the previous handler was 0000h:0000h).  The sole purpose of
  5695.       this vector is to provide the address of the data area described
  5696.       below (see #03862).
  5697.  
  5698. Format of HyperPAD data area:
  5699. Offset    Size    Description    (Table 03862)
  5700.  -16h    DWORD    pointer to ??? FAR function
  5701.  -12h    DWORD    pointer to callback setting function
  5702.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  5703.  -0Eh 6 BYTEs    signature "BRC001"
  5704.  -08h    DWORD    pointer to previous INT 7D handler
  5705.  -04h    DWORD    pointer to ??? data
  5706.  00h        HyperPAD INT 7D handler
  5707. ----------7D---------------------------------
  5708. INT 7D - IBM DOS 6.1 E.EXE - ???
  5709. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  5710.       and if it is used, attempts to load E55VGA.EX instead of the
  5711.       default E.EX overlay.     However, E55VGA.EX is not included in
  5712.       IBM DOS 6.1.
  5713. --------G-7D00-------------------------------
  5714. INT 7D - SCSILink - RESET SCSI BUS
  5715.     AH = 00h
  5716. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  5717.       cross assemblers and similar products to communicate with Cross
  5718.       Products hardware debuggers
  5719. Desc:    reset all devices on the SCSI bus
  5720. InstallCheck:    test for the signature "SCSILINK" immediately prior to the
  5721.       interrupt handler
  5722. Index:    installation check;SCSILink
  5723. --------G-7D01-------------------------------
  5724. INT 7D - SCSILink - CONNECT TO TARGET
  5725.     AH = 01h
  5726.     AL = target ID
  5727. Return: CF clear if successful
  5728.     CF set on error
  5729.         AL = initiator error
  5730.         AH = target error
  5731. Desc:    arbitrate the use of the bus and select the specified target device
  5732. --------G-7D02-------------------------------
  5733. INT 7D - SCSILink - SEND COMMAND
  5734.     AH = 02h
  5735.     ES:BX -> parameter block (see #03863)
  5736. Return: CF clear if successful
  5737.     CF set on error
  5738.         AL = initiator error
  5739.         AH = target error
  5740. Desc:    send the specified command block to the target device and perform any
  5741.       related I/O
  5742.  
  5743. Format of SCSILink parameter block:
  5744. Offset    Size    Description    (Table 03863)
  5745.  00h    DWORD    size of command block
  5746.  04h    DWORD    address of command block (see #03864)
  5747.  08h    DWORD    size of buffer
  5748.  0Ch    DWORD    address of buffer
  5749.  
  5750. Format of SCSILink command block:
  5751. Offset    Size    Description    (Table 03864)
  5752.  00h        info not yet available
  5753. --------G-7D03-------------------------------
  5754. INT 7D - SCSILink - SET TIMEOUT
  5755.     AH = 03h
  5756.     AL = timeout selector (see #03865)
  5757.     BX = new value in 55ms ticks
  5758. Desc:    change an internal timeout value to allow communication with very
  5759.       slow targets
  5760.  
  5761. (Table 03865)
  5762. Values for SCSILink timeout selector:
  5763.  00h    time to wait for bus (default 18)
  5764.  01h    time to wait for new phase (default 5)
  5765.  02h    maximum time to send/receive block (default 18)
  5766.  03h    time to wait for reselect (default 180)
  5767. --------G-7D04-------------------------------
  5768. INT 7D - SCSILink - GET ERROR STRING
  5769.     AH = 04h
  5770.     AL = error number
  5771. Return: ES:BX -> ASCIZ error string for error number
  5772. --------G-7D05-------------------------------
  5773. INT 7D - SCSILink - GET ADDRESS
  5774.     AH = 05h
  5775. Return: AL = DMA channel
  5776.     AH = initiator ID
  5777.     BX = card address
  5778. Desc:    determine the current hardware configuration
  5779. --------G-7D06-------------------------------
  5780. INT 7D - SCSILink - PUT DATA
  5781.     AH = 06h
  5782.     CX = number of bytes to store (0001h-0100h)
  5783.     ES:BX -> data to be saved
  5784. Return: CF clear if successful
  5785.     CF set on error
  5786.         AL = error code (01h = too much data)
  5787. Note:    the specified data is stored in SCSILink's PSP
  5788. SeeAlso: AH=07h
  5789. --------G-7D07-------------------------------
  5790. INT 7D - SCSILink - GET DATA
  5791.     AH = 07h
  5792.     CX = number of bytes to retrieve (0001h-0100h)
  5793.     ES:BX -> buffer for data
  5794. Return: CF clear if successful
  5795.     CF set on error
  5796.         AL = error code (01h = too much data)
  5797. Note:    retrieve data previously stored with AH=06h
  5798. SeeAlso: AH=06h
  5799. --------G-7D08-------------------------------
  5800. INT 7D - SCSILink - TERMINATE SESSION
  5801.     AH = 08h
  5802. Desc:    indicate to any other programs that intercept INT 7D that the program
  5803.       has finished with the link
  5804. Note:    the program should call this function even if a SCSI error caused its
  5805.       termination
  5806. --------G-7D09-------------------------------
  5807. INT 7D - SCSILink - POLL REQUEST
  5808.     AH = 09h
  5809.     AL = target ID
  5810. Return: AL = status
  5811.         FEh resident driver experienced SCSI error
  5812.         FFh resident driver handleded event
  5813. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  5814.       not specifically handled by the calling program
  5815. Notes:    this service exists so that resident disk servers, etc. can continue
  5816.       running even while debuggers and profilers are active
  5817.     the resident driver assumes that a connection has been established and
  5818.       attempts to leave the target connected
  5819. --------*-7E---------------------------------
  5820. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  5821. --------S-7E---------------------------------
  5822. INT 7E U - YTERM 1.4 - ???
  5823. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  5824. --------E-7E---------------------------------
  5825. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  5826. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5827.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5828. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5829.       early versions of the extender
  5830.     the newest versions of GO32 dynamically allocate the vectors used
  5831.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5832. SeeAlso: INT 0E"IRQ6",INT 7D"GO32",INT 7F"GO32"
  5833. --------s-7E00-------------------------------
  5834. INT 7E - MaxSBOS v0.21 - GET ???
  5835.     AH = 00h
  5836. Return: DX:AX -> ???
  5837. SeeAlso: AH=01h,AH=02h,AH=03h
  5838. --------s-7E0001-----------------------------
  5839. INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
  5840.     AX = 0001h
  5841.     DX = game device handle
  5842.     BL = MIDI byte to send???
  5843.     ???
  5844. Return: EAX = status
  5845.         00000000h if successful
  5846.         FFFFFFFFh on error (function disabled)
  5847. Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card
  5848.       emulator for the Gravis UltraSound Plug-and-Play
  5849. Note:    this function is only supported if the MIDISIMPLE device has been
  5850.       opened via the InterWave Game API (see INT 2F/AX=CD21h)
  5851. SeeAlso: AX=0002h,INT 2F/AX=CD21h,#03074
  5852. --------s-7E0002-----------------------------
  5853. INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
  5854.     AX = 0002h
  5855.     DX = game device handle
  5856.     ES:EDI -> buffer containing MIDI string to be sent
  5857.     ECX = length of buffer in bytes
  5858. Return: EAX = status
  5859.         00000000h if successful
  5860.         FFFFFFFFh on error (function disabled)
  5861. Note:    this function is only supported if the MIDISIMPLE device has been
  5862.       opened via the InterWave Game API (see INT 2F/AX=CD21h)
  5863. SeeAlso: AX=0001h,INT 2F/AX=CD21h,#03074
  5864. --------s-7E00F6-----------------------------
  5865. INT 7E - SBOS v3.82 - SET ???
  5866.     AX = 00F6h
  5867.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5868. Return: AX=00F9h,AX=00FEh
  5869. --------s-7E00F7-----------------------------
  5870. INT 7E - SBOS v3.82 - GET ???
  5871.     AX = 00F7h
  5872. Return: AX = status
  5873.         0000h failed
  5874.         0001h successful
  5875.         BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  5876.         CH = ???
  5877.         CL = ???
  5878. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5879. --------s-7E00F9-----------------------------
  5880. INT 7E - SBOS v3.82 - SET ???
  5881.     AX = 00F9h
  5882.     BX = ???
  5883. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  5884. --------s-7E00FB-----------------------------
  5885. INT 7E - SBOS v3.82 - SET ???
  5886.     AX = 00FBh
  5887.     BL = ???
  5888. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5889. --------s-7E00FD-----------------------------
  5890. INT 7E - SBOS v3.82 - SET ???
  5891.     AX = 00FDh
  5892.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5893. SeeAlso: AX=00F9h,AX=00FEh
  5894. --------s-7E00FE-----------------------------
  5895. INT 7E - SBOS v3.82 - UNINSTALL
  5896.     AX = 00FEh
  5897. Return: AX = status
  5898.         0000h successful
  5899.         00FCh unable to unhook INT 21
  5900.         00FDh unable to unhook INT 09
  5901.         00FEh unable to release memory
  5902. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  5903. InstallCheck:    test for the ASCII signature "SBOS" at offset 0Ah in the
  5904.       interrupt handler's segment (similar to one of the possible EMS
  5905.       installation checks)
  5906. Range:    SBOS may use INT 78-INT 7F
  5907. Note:    this function may not be called if any SBOS vectors have been hooked
  5908. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  5909. --------s-7E00FF-----------------------------
  5910. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  5911.     AX = 00FFh
  5912.     BL = new interrupt vector to hook
  5913. Return: BX = 03CDh if supported
  5914. Desc:    unhooks the current interrupt handler for ???, and reconnects it to the
  5915.       specified new interrupt number
  5916. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  5917. --------s-7E01-------------------------------
  5918. INT 7E - MaxSBOS v0.21 - ???
  5919.     AH = 01h
  5920.     ???
  5921. Return: ???
  5922. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  5923.       UltraSound MAX
  5924. Range:    INT 78-INT 7F, selected by commandline parameter
  5925. Note:    the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  5926.       although the API in v0.21 does not provide the functions present in
  5927.       the older SBOS
  5928. SeeAlso: AX=00FEh,AH=02h,AH=03h
  5929. --------s-7E02-------------------------------
  5930. INT 7E - MaxSBOS v0.21 - ???
  5931.     AH = 02h
  5932. Return: AX = FFFFh
  5933. SeeAlso: AX=00FEh,AH=01h,AH=03h
  5934. --------s-7E03-------------------------------
  5935. INT 7E - MaxSBOS v0.21 - NOP
  5936.     AH = 03h
  5937. Return: nothing
  5938. SeeAlso: AX=00FEh,AH=01h,AH=02h
  5939. --------m-7E5857BL57-------------------------
  5940. INT 7E - XLOAD - INSTALLATION CHECK
  5941.     AX = 5857h
  5942.     BL = 57h
  5943. Return: AX = 0000h if installed
  5944. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  5945. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  5946. --------m-7E5857BL5A-------------------------
  5947. INT 7E - XLOAD - GET ???
  5948.     AX = 5857h
  5949.     BL = 5Ah
  5950. Return: AX = 0000h
  5951.     CX = ???
  5952.     DS:SI -> ???
  5953. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  5954. --------m-7E5857BL5B-------------------------
  5955. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  5956.     AX = 5857h
  5957.     BL = 5Bh
  5958. Return: AX = 0000h
  5959.     CX = segment of XLOAD TSR
  5960.     DX = size of memory block in which XLOAD TSR is located
  5961. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  5962. --------s-7E--80-----------------------------
  5963. INT 7E - IWSBSDRV v1.41 - GET ???
  5964.     AL = 80h
  5965. Return: DX:AX -> ???
  5966. SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  5967. --------s-7E--81-----------------------------
  5968. INT 7E - IWSBSDRV v1.41 - ???
  5969.     AL = 81h
  5970.     ???
  5971. Return: ???
  5972. SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  5973. --------s-7E--82-----------------------------
  5974. INT 7E - IWSBSDRV v1.41 - GET ???
  5975.     AL = 82h
  5976. Return: AX = ??? (FFFFh)
  5977. SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  5978. --------s-7E--83-----------------------------
  5979. INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
  5980.     AL = 83h
  5981.     ???
  5982. Return: ???
  5983. SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h
  5984. SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD"
  5985. --------s-7E--84-----------------------------
  5986. INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
  5987.     AL = 84h
  5988. Return: AL = status
  5989.         00h successful
  5990.         else failed
  5991. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h
  5992. SeeAlso: INT 2F/AX=CD04h"InterWave"
  5993. --------s-7E--85-----------------------------
  5994. INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
  5995.     AL = 85h
  5996. Return: nothing
  5997. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87h
  5998. --------s-7E--86-----------------------------
  5999. INT 7E - IWSBSDRV v1.41 - HOOK INT 21
  6000.     AL = 86h
  6001. Return: AX,BX,DX,ES destroyed
  6002. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87h
  6003. --------s-7E--87-----------------------------
  6004. INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
  6005.     AL = 87h
  6006. Return: AX,DX destroyed
  6007. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h
  6008. --------V-7F---------------------------------
  6009. INT 7F - Halo88 - API
  6010.     BX = function number (see #03866)
  6011.     additional parameters on stack
  6012. Return: ???
  6013. Program: Halo88 is a suite of graphics routines
  6014. Note:    according to Stuart Kemp, the code appears to make no provisions for
  6015.        chaining
  6016.  
  6017. (Table 03866)
  6018. Values for Halo88 API function:
  6019.  64h    arc
  6020.  65h    bar
  6021.  66h    box
  6022.  67h    circle
  6023.  68h    clr
  6024.  69h    default hatch style
  6025.  6Ah    default line style
  6026.  6Bh    delhcur
  6027.  6Ch    delln / deltcur
  6028.  6Dh    ellipse
  6029.  6Eh    fill
  6030.  6Fh    flood
  6031.  70h    flood2
  6032.  71h    init graphics
  6033.  72h    init hcur
  6034.  73h    init marker
  6035.  74h    init tcur
  6036.  75h    inqarc
  6037.  76h    inqbknd
  6038.  77h    inqclr
  6039.  78h    inqerr
  6040.  79h    inqgcur
  6041.  7Ah    inqhcur
  6042.  7Bh    inqmarker
  6043.  7Dh    inqtcur
  6044.  7Eh    inqtext
  6045.  7Fh    lnabs
  6046.  80h    lnrel
  6047.  81h    markerabs
  6048.  82h    markerrel
  6049.  83h    moveabs
  6050.  84h    movehcurabs
  6051.  85h    movehcurrel
  6052.  86h    moverel
  6053.  87h    movetcurabs
  6054.  88h    movetcurrel
  6055.  89h    movefrom
  6056.  8Ah    moveto
  6057.  8Bh    pie
  6058.  8Ch    polylnabs
  6059.  8Dh    polylnrel
  6060.  8Eh    ptabs
  6061.  8Fh    ptrel
  6062.  91h    setasp
  6063.  92h    set color
  6064.  93h    set font
  6065.  94h    set hatch    style
  6066.  95h    set line style
  6067.  97h    settext
  6068.  98h    set text color
  6069.  99h    btext
  6070.  9Ah    setseg
  6071.  9Bh    display
  6072.  9Ch    setscreen
  6073.  9Eh    close graphics
  6074.  9Fh    ftinit
  6075.  A0h    ftlocate
  6076.  A1h    ftext
  6077.  A5h    set viewport
  6078.  A6h    set window
  6079.  A7h    set world
  6080.  AAh    ftcolor
  6081.  ACh    initlp
  6082.  ADh    inqasp
  6083.  AEh    inqdev
  6084.  AFh    inqdisplay
  6085.  B0h    inqft
  6086.  B1h    inqftcolor
  6087.  B2h    inqinterlace
  6088.  B3h    inqlpa
  6089.  B4h    inqlpg
  6090.  B5h    inqmode
  6091.  B6h    inqscreen
  6092.  B7h    inqversion
  6093.  B8h    roam
  6094.  B9h    scroll
  6095.  BAh    setieee
  6096.  BBh    set interlace
  6097.  BCh    shift
  6098.  BDh    start graphics
  6099.  BEh    vpan
  6100.  CBh    gwrite
  6101.  CCh    gread
  6102.  CDh    setxor
  6103.  CEh    rbox
  6104.  CFh    rcir
  6105.  D0h    rlnabs
  6106.  D1h    rlnrel
  6107.  D2h    delbox
  6108.  D3h    delcir
  6109.  D5h    setseg2
  6110.  DCh    worldoff
  6111.  DDh    mapwtod
  6112.  DEh    mapdtow
  6113.  DFh    mapwton
  6114.  E0h    mapntow
  6115.  E1h    mapdton
  6116.  E2h    mapntod
  6117.  E3h    inqworld
  6118.  E4h    inqviewport
  6119.  E5h    set line width
  6120.  E6h    lnjoint
  6121.  E7h    set locator
  6122.  E8h    read locator
  6123.  E9h    setdev
  6124.  EBh    setstext
  6125.  ECh    setstclr
  6126.  EDh    setstang
  6127.  EEh    stext
  6128.  EFh    inqstext
  6129.  F0h    setdegree
  6130.  F1h    inqstsize
  6131.  F2h    polyfabs
  6132.  F3h    polyfrel
  6133.  F4h    inqdrange
  6134.  F5h    inqstang
  6135.  F6h    orglocator
  6136.  F7h    inqlocator
  6137.  F8h    inqarea
  6138.  F9h    setipal
  6139.  FAh    setborder
  6140.  FBh    inqcrange
  6141.  FEh    setclip
  6142.  FFh    fcir
  6143. 100h    setcrange
  6144. 101h    setdrange
  6145. 102h    setlattr
  6146. 103h    polycabs
  6147. 104h    polycrel
  6148. 108h    memcom
  6149. 109h    memexp
  6150. 10Ah    memmov
  6151. 10Eh    movefx
  6152. 10Fh    movetx
  6153. 110h    inqrgb
  6154. 111h    save image
  6155. 112h    restore image
  6156. 113h    setapal
  6157. 114h    setxpal
  6158. 118h    inqtsize
  6159. 12Eh    gprint
  6160. 130h    setprn
  6161. 131h    setpattr
  6162. 133h    setbattr
  6163. 135h    pexpand
  6164. 136h    ptnorm
  6165. 137h    pfnorm
  6166. 13Bh    inqprn
  6167. 13Ch    lopen
  6168. 13Dh    lclose
  6169. 13Eh    lappend
  6170. 13Fh    lrecord
  6171. 140h    lswitch
  6172. 142h    inqfun
  6173. 15Dh    lsetup
  6174. 15Eh    lrest
  6175. 15Fh    lsave
  6176. --------N-7F---------------------------------
  6177. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  6178.     AL = request ID
  6179.         01h "Request"/"RequestDirect"
  6180.         ES:BX -> pRq
  6181.         DX ignored
  6182.         04h "Wait"
  6183.         ES:BX -> ppMsgRet
  6184.         DX = exchange
  6185.         05h "AllocExch"
  6186.         ES:BX -> pExchRet
  6187.         06h "DeAllocExch"
  6188.         DX = exchange
  6189.         07h "Check"
  6190.         ES:BX -> ppMsgRet
  6191.         DX = exchange
  6192.     CX = 4354h ('CT')
  6193. Return: AX = status
  6194.         0000h successful
  6195. --------S-7F---------------------------------
  6196. INT 7F - Telebit ACS SERIAL I/O
  6197.     ES:SI-> parameter block (see #03867)
  6198. Return: CF set on error
  6199.     CF clear on success
  6200. InstallCheck:    test for the signature "PDGATEWRKSTNIF" just prior to the
  6201.       interrupt handler
  6202. Index:    installation check;Telebit ACS Serial I/O
  6203.  
  6204. Format of Telebit ACS parameter block:
  6205. Offset    Size    Description    (Table 03867)
  6206.  00h    BYTE    command (see #03868)
  6207.  01h    BYTE    gateway number
  6208.  02h    BYTE    reserved
  6209.  03h    BYTE    port
  6210.  04h 17 BYTEs    auxiliary buffer
  6211.  15h    BYTE    session
  6212.  16h    WORD    count of bytes passed to API
  6213.  18h    DWORD    buffer pointer passed to/from API
  6214.  1Ch    WORD    count of bytes passed from API
  6215.  1Eh    BYTE    return code (see #03869)
  6216.  
  6217. (Table 03868)
  6218. Values for Telebit ACS command:
  6219.  3Ch    status
  6220.  3Dh    connect
  6221.  3Eh    disconnect
  6222.  3Fh    read
  6223.  40h    data/command write
  6224.  41h    clear receive buffer
  6225.  42h    get configuration
  6226.  43h    get receiver status
  6227.  44h    raw write
  6228.  45h    search servers
  6229.  46h    set transmit buffer size
  6230.  
  6231. (Table 03869)
  6232. Values for Telebit ACS return code:
  6233.  00h    success
  6234.  01h    invalid session
  6235.  05h    servername invalid
  6236.  06h    NetWare fileserver bindery is locked
  6237.  07h    communication server not active
  6238.  08h    general failure in NetWare fileserver
  6239.  09h    not logged into a fileserver
  6240.  10h    connection table full
  6241.  11h    no response from communication server
  6242.  12h    connection attempt terminated abnormally
  6243.  13h    connection refused - no sessions available
  6244.  14h    gateway number/port already in use
  6245.  15h    invalid connection response
  6246.  16h    port invalid
  6247.  17h    incorrect version in server response
  6248.  18h    gateway number/port combination not configured
  6249.  19h    initialization has not been completed
  6250.  20h    no more sockets are available
  6251.  21h    no active poolname
  6252.  23h    FATAL internal interface error
  6253.  24h    registration of host workstation failed - name is already in use
  6254.  25h    registration of host workstation failed - workstation name table full
  6255.  26h    registration of host workstation failed - only one session may be
  6256.       registered for dial-in
  6257.  FFh    Telebit ACS API is busy - retry later
  6258. --------N-7F---------------------------------
  6259. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  6260. InstallCheck:    test for the signature "Lynn" in the four bytes preceding the
  6261.       interrupt handler; if present, the current program is running as a
  6262.       DOS task on a non-dedicated NetWare 2.x file server.
  6263. Note:    Before placing the server into "console" mode, it is recommended that
  6264.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  6265. SeeAlso: INT 21/AH=DEh/DL=04h
  6266. Index:    installation check;non-dedicated NetWare server
  6267. --------S-7F---------------------------------
  6268. INT 7F U - YTERM - ???
  6269. SeeAlso: INT 7E"YTERM"
  6270. --------E-7F---------------------------------
  6271. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  6272. Notes:    this vector is overwritten when GO32 starts but is not restored by
  6273.       early versions of the DOS extender
  6274.     the newest versions of GO32 dynamically allocate the vectors used
  6275.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  6276. SeeAlso: INT 0F"IRQ7",INT 7E"GO32"
  6277. ----------7F---------------------------------
  6278. INT 7F - Canon IXHND2 Scanner Interface
  6279. --------U-7F---------------------------------
  6280. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  6281.     DS:SI -> WinRun control block (WCB) (see #03870)
  6282. Return: WinRun receiver status returned in WCB
  6283. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  6284.       Windows applications from a virtual DOS machine under Windows
  6285. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  6286.       to be up and running
  6287.  
  6288. Format of the WinRun control block (WCB):
  6289. Offset    Size    Description    (Table 03870)
  6290.  00h    DWORD    pointer to ASCIZ command string
  6291.  04h    WORD    (ret) WinRun receiver status
  6292.         0000h-001Fh WinExec() error
  6293.         0020h-FFFEh WinExec() instance handle
  6294.         FFFFh        Windows not running or WinRun receiver not
  6295.                   installed
  6296. --------N-7F---------------------------------
  6297. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  6298. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  6299.       MW386 multitasking system is present (i.e. signature "NXNX")
  6300.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  6301.       load time.  To determine the actual vector used, open the device
  6302.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  6303.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  6304.       be the actual interrupt number being used; the other interrupts may
  6305.       be found with INT 7F/AH=09h/CL=03h
  6306. --------N-7F---------------------------------
  6307. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  6308. Note:    a program may determine that it is running on an ANSK Slave by checking
  6309.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  6310.       address is RAM, and should not be written.  However, the above check
  6311.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  6312.       device driver
  6313. --------N-7F00-------------------------------
  6314. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  6315.     AH = 00h
  6316.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  6317. Return: AL = status (see #03871)
  6318.     AH = semaphore owner if status=02h
  6319. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  6320.  
  6321. (Table 03871)
  6322. Values for Alloy function status:
  6323.  00h    successful
  6324.  01h    invalid function
  6325.  02h    semaphore already locked
  6326.  03h    unable to lock/unlock semaphore
  6327.  04h    semaphore space exhausted
  6328.  05h    host/target PC did not respond (NTNX)
  6329. --------T-7F00-------------------------------
  6330. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  6331.     AH = 00h
  6332.     BX = resource identifier
  6333.     AL = wait flag
  6334. Return: AL = status
  6335.         00h successful
  6336.         01h resource not available
  6337.         02h user error
  6338. InstallCheck:    ensure that the interrupt vector is not pointing at segment
  6339.       0000h, then test whether the byte at offset 0000h in the interrupt
  6340.       handler's segment is E9h
  6341. Notes:    function will not return until the resource is available if AL is
  6342.       nonzero on entry
  6343.     a maximum of 100 resources may be enqueued at once
  6344. SeeAlso: AH=01h"MultiLink"
  6345. --------N-7F00-------------------------------
  6346. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  6347.     AH = 00h
  6348.     ES:SI -> buffer for "USERS" text string
  6349. Return: AX = 4250h ('BP') if installed
  6350.     BX = 5120h ('Q ') if installed
  6351.     DX = version number (DH = major, DL = minor)
  6352.     CX = length of returned string
  6353. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  6354.       John Wiseman which allows a PC to act as a node in an AX.25 network
  6355. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  6356. --------N-7F01-------------------------------
  6357. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  6358.     AH = 01h
  6359.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  6360. Return: AL = status (see #03871)
  6361.     AH = semaphore owner if status=02h
  6362. SeeAlso: AH=00h,AH=02h,AH=41h
  6363. --------T-7F01-------------------------------
  6364. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  6365.     AH = 01h
  6366.     BX = resource identifier
  6367. Return: AL = status
  6368.         00h successful
  6369.         02h user error
  6370. Note:    the indicated resource may be dequeued even if it was enqueued by
  6371.       another task
  6372. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  6373. --------V-7F01-------------------------------
  6374. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  6375.     AH = 01h
  6376. Return: BX = 1234h if installed
  6377.         DX:AX -> array of FAR entry points
  6378.         CH = driver major version
  6379.         CL = driver minor version
  6380. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  6381. SeeAlso: AX=1234h,AX=4321h
  6382. --------N-7F01-------------------------------
  6383. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  6384.     AH = 01h
  6385.     AL = stream number (01h-40h)
  6386.     CL = new application flags
  6387.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  6388.     DL = new application mask
  6389. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  6390.       John Wiseman which allows a PC to act as a node in an AX.25 network
  6391. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  6392.       (earlier versions were hard-wired for INT 7F)
  6393. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  6394. --------I-7F0104BX0000-----------------------
  6395. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  6396.     AX = 0104h (HLLAPI gate ID)
  6397.     BX = 0000h
  6398.     DS:SI -> parameter control block (see #03872)
  6399. Return: parameter control block updated
  6400. InstallCheck:    for the Novell HLLAPI TSR, test for the signature "CXI" (for
  6401.       the company Novell bought) immediately prior to the interrupt handler
  6402. SeeAlso: AX=0105h,AX=ABCDh
  6403.  
  6404. Format of HLLAPI parameter control block:
  6405. Offset    Size    Description    (Table 03872)
  6406.  00h  3 BYTEs    signature = 'PCB'
  6407.  03h    BYTE    function number (see #03873,#03874)
  6408.  04h    WORD    segment of control string
  6409.  06h    WORD    offset of control string
  6410.  08h    WORD    length of control string, unless explicit end-of-str char set
  6411.  0Ah    BYTE    unused (IBM)
  6412.         ControlString[0] (Rabbit)
  6413.  0Bh    WORD    return code (see #03876)
  6414.  0Dh    WORD    maximum length of control string (IBM)
  6415.         unused (Rabbit)
  6416.  
  6417. (Table 03873)
  6418. Values for HLLAPI function number:
  6419.  00h    OEM function (Query system for Attachmate implementation)
  6420.  01h    Connect presentation space
  6421.  02h    Disconnect presentation space
  6422.  03h    Send string of keystrokes as if typed from keyboard
  6423.  04h    Wait ~60s, returns status of presentation space
  6424.  05h    Copy current presentation space into a user-defined buffer
  6425.  06h    Search presentation space for first occurrence of a specified string
  6426.  07h    Query cursor location in current presentation space
  6427.  08h    Copy part or all of current presentation space into user buffer
  6428.  09h    Set session parameters; parameters vary by vendor (see #03875)
  6429.  0Ah    Get info on sessions currently connected
  6430.  0Bh    Lock current presentation space
  6431.  0Ch    Unlock previously locked presentation space
  6432.  0Dh    Return copy of operator info area (OIA) of current presentation space
  6433.  0Eh    get attribute byte for given position in the current presentation space
  6434.  0Fh    copy string of characters to the current presentation space
  6435.  10h    workstation control functions
  6436.  11h    storage manager functions, intended primarily for BASIC applications
  6437.     (not implemented by Rabbit)
  6438.  12h    set delay period in half-second intervals
  6439.  14h    get info on level of workstation support used
  6440.  15h    reset session parameters to default values
  6441.  16h    get detailed info on the current session
  6442.  17h    start host notification to application on presentation sp or OIA update
  6443.  18h    check host update when host notification enabled
  6444.  19h    stop host notification
  6445.  1Eh    search field within current presentation space for string
  6446.  1Fh    get first positionof a selected field in the current presentation space
  6447.  20h    get length of specified field
  6448.  21h    copy string into a specified field
  6449.  22h    copy specified field into a user-defined buffer
  6450.  23h    create alternate presentation space (IBM only), don't use with BASIC
  6451.  24h    switch to alternate presentation space (IBM only), not with BASIC
  6452.  25h    display cursor in specified area (IBM only), don't use with BASIC
  6453.  26h    display alternate presentation space (IBM only), don't use with BASIC
  6454.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  6455.  28h    set cursor
  6456.  29h    start Close Intercept
  6457.  2Ah    query Close Intercept
  6458.  2Bh    stop Close Intercept
  6459.  32h    start intercepting keystrokes to allow filtering
  6460.  33h    get keystrokes after turning on interception
  6461.  34h    notify operator when keystroke rejected by filter subroutine
  6462.  35h    stop intercepting keystrokes
  6463.  5Ah    send file
  6464.  5Bh    receive file
  6465.  5Ch    run a program (not implemented by Rabbit)
  6466.  5Dh    execute DOS command (not implemented by Rabbit)
  6467.  63h    change presentation space position to PC display row/col or vice versa
  6468.  65h    connect to Window Services
  6469.  66h    disconnect from Window Services
  6470.  67h    set/query window coordinates
  6471.  68h    set/query window status
  6472.  69h    change presentation space name
  6473.  78h    connect Structured Fields
  6474.  79h    disconnect Structured Fields
  6475.  7Ah    query size of communications buffer
  6476.  7Bh    allocate communications buffer
  6477.  7Ch    free communications buffer
  6478.  7Dh    get request completion state
  6479.  7Eh    read Structured Fields
  6480.  7Fh    write Structured Fields
  6481.  FFh    Get info on DCA implementation
  6482.  
  6483. (Table 03874)
  6484. Values for LLAPI function number:
  6485.  80h    initialize LLAPI (internal call)
  6486.  83h    set Session ID (one-character ID)
  6487.  84h    read Session ID (one-character ID)
  6488.  85h    lock 327x keyboard
  6489.  86h    unlock 327x keyboard
  6490.  87h    wait for Clear to Send
  6491.  88h    type ASCII character
  6492.  89h    type 327x key
  6493.  8Ah    read keyboard lock state
  6494.  8Fh    force screen update
  6495.  90h    view session
  6496.  91h    relinquish (suspend foreground until background becomes idle)
  6497.  92h    poke screen character
  6498.  93h    poke translated character
  6499.  94h    peek screen character
  6500.  95h    peek translated character
  6501.  96h    set cursor position
  6502.  97h    send scan code (Rabbit only)
  6503.  98h    synchronize (returns after keystroke queue empty)
  6504.  99h    type PC key (Rabbit only)
  6505.  
  6506. (Table 03875)
  6507. Values for HLLAPI Function 09h Session Parameters:
  6508.  ASCII        ??? (Rabbit only)
  6509.  ATTRIB        return attributes in hex
  6510.  NOATTRIB    return attributes as blanks
  6511.  CONPHYS    make physical connection
  6512.  CONLOG        only make logical connection
  6513.  EAB        copy extended attribute bytes along with data
  6514.  NOEAB        copy data only
  6515.  ESC=n        set escape character to "n" (default '@')
  6516.  EOT=n        set end of string character (default 00h)
  6517.  FPAUSE        full-duration pause
  6518.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  6519.  FTWAIT        wait for file transfer to complete (Rabbit only)
  6520.  IPAUSE        interruptable pause
  6521.  RABESC        ??? (Rabbit only)
  6522.  NORABESC    ??? (Rabbit only)
  6523.  SCANCODE    ??? (Rabbit only)
  6524.  STRLEN        use explicit string lengths
  6525.  STREOT        use terminated strings
  6526.  SRCHALL    search entire presentation space
  6527.  SRCHFROM    search from specified offset
  6528.  SRCHFRWD    search forward from position 1
  6529.  SRCHBKWD    search backward from last position in presentation space
  6530.  TIMEOUT=n    ??? (Rabbit only)
  6531.  TWAIT        wait specified time for keyboard ready
  6532.  LWAIT        wait until keyboard ready
  6533.  NWAIT        no wait
  6534.  TRON        enable tracing
  6535.  TROFF        disable tracing
  6536.  AUTORESET    send reset before sending keys with function 03h
  6537.  NORESET    don't send reset
  6538.  QUIET        don't display messages sent with INT 21/AH=09h
  6539.  NOQUIET    allow messages to be displayed
  6540.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  6541.  XLATE        translate extended attribute bytes
  6542.  NOXLATE    don't translate
  6543.  NEWRET        use HLLAPI v3.0 return code conventions
  6544.  OLDRET        use HLLAPI v2.0 return code conventions
  6545.  
  6546. (Table 03876)
  6547. Values for Windows HLLAPI return code:
  6548.  00h    successful
  6549.  01h    Presentation Space not connected/requested size unavailable
  6550.  02h    invalid function or parameter error/invalid block ID
  6551.  03h    file transfer complete
  6552.  04h    file transfer complete (segmented)/Presentation Space busy
  6553.  05h    inhibited or keyboard locked
  6554.  06h    data truncated
  6555.  07h    invalid Presentation Space position
  6556.  08h    operation not available
  6557.  09h    system error
  6558.  0Ah    blocking error
  6559.  0Bh    resource not available
  6560.  0Ch    session stopped
  6561.  14h    undefined key combination
  6562.  15h    OIA updated
  6563.  16h    Presentation Space updated
  6564.  17h    both Presentation Space and OIA updated
  6565.  18h    no such field
  6566.  19h    no keystrokes available
  6567.  1Ah    Presentation Space or Operator Information Area changed
  6568.  1Bh    file transfer aborted
  6569.  1Ch    zero-length field
  6570.  1Eh    cursor type invalid
  6571.  1Fh    keystroke overflow
  6572.  20h    another application is already connected
  6573.  22h    message sent to host cancelled
  6574.  23h    transmission from host cancelled
  6575.  24h    lost contact with host
  6576.  25h    function successful
  6577.  26h    function incomplete
  6578.  27h    a DDM session is already connected
  6579.  28h    disconnected, but asynchronous requests still pending
  6580.  29h    buffer already in use
  6581.  2Ah    no matching request found
  6582. 12Dh    invalid function number
  6583. 12Eh    file not found
  6584. 131h    access denied
  6585. 134h    out of memory
  6586. 136h    environment invalid
  6587. 137h    format invalid
  6588. 270Eh (9998) invalid Presentation Space ID
  6589. 270Fh (9999) invalid row or column code
  6590. ---Windows HLLAPI extensions---
  6591. F000h    asynchronous call already in progress
  6592. F001h    invalid asynchronous task ID
  6593. F002h    blocking call cancelled
  6594. F003h    underlying subsystem not started
  6595. F004h    unsupported application version
  6596. --------V-7F0105-----------------------------
  6597. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  6598.     AX = 0105h
  6599. Return: CF set on error
  6600.     CF clear if successful
  6601.         CX:DX -> array of FAR pointers to entry points (see #03877)
  6602. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  6603.       and then performing a FAR call via the appropriate vector of the
  6604.       entry point array, placing the FAR address of the function's
  6605.       parameter block on the top of the stack
  6606. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  6607.  
  6608. (Table 03877)
  6609. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  6610.  08h    HOPEN    Open Adapter (see #03909)
  6611.  09h    HSMX    Set Mix (see #03938)
  6612.  10h    HINT    Interrupt (see #03905)
  6613.  13h    HLDPAL    Load Palette (see #03906)
  6614.  15h    HBBW    BitBLT Write Image Data (see #03892)
  6615.  17h    HBBR    BitBLT Read Image Data (see #03893)
  6616.  18h    HBBCHN    Chained Data Go (see #03891)
  6617.  19h    HBBC    BitBLT Copy Data (see #03890)
  6618.  1Dh    HQMODE    Get Current Mode (see #03915)
  6619.  20h    HRECT    Fill Rectangle (see #03917)
  6620.  22h    HCLOSE    Close Adapter and place in quiescent state (see #03898)
  6621.  30h    HINIT    Initialize State (see #03904)
  6622.  31h    HSYNC    Synchronize Adapter (see #03943)
  6623.  39h    HSPAL    Save Palette (see #03940)
  6624.  3Ah    HRPAL    Restore Palette (see #03920)
  6625.  ???    HSGQ    Set Graphics Quality (see #03929)
  6626.  ???    HSCOORD    Set Coordinate Type (see #03926)
  6627.  ???    HESC    Escape, Terminate Processing (see #03903)
  6628.  ???    HSBCOL    Set Background Color (see #03921)
  6629.  ???    HSBP    Set Bit Plane Controls (see #03922)
  6630.  ???    HSCMP    Set Color Comparison Register (see #03924)
  6631.  ???    HSCOL    Set Color (see #03925)
  6632.  ???    HSHS    Set Scissors (clipping rectangle) (see #03930)
  6633.  ???    HXLATE    Assign Text Color (see #03944)
  6634.  ???    HQMODES    Get Adapter Modes (see #03916)
  6635.  ???    HQDPS    Get Drawing Process State Size (see #03914)
  6636.  ???    HQDFPAL    Get Default Palette (see #03913)
  6637.  ???    HQCOORD    Get Coordinate Type (see #03911)
  6638.  ???    HQCP    Get Current Position (see #03912)
  6639.  ???    HSMODE    Change Mode (see #03936)
  6640.  ???    HLINE    Draw Line at Given Position (see #03907)
  6641.  ???    HCLINE    Draw Line at Current Position (see #03897)
  6642.  ???    HRLINE    Draw Line Relative from Given Position (see #03918)
  6643.  ???    HCRLINE    Draw Line Relative at Current Position (see #03900)
  6644.  ???    HSLT    Set Line Type (see #03933)
  6645.  ???    HSLW    Set Line Width (see #03935)
  6646.  ???    HSLPC    Save Line Pattern Count (see #03932)
  6647.  ???    HRLPC    Restore Line Pattern Count (see #03919)
  6648.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #03894)
  6649.  ???    HBAR    Begin Area (see #03889)
  6650.  ???    HEAR    End Area (see #03901)
  6651.  ???    HSPATT    Set Pattern (see #03941)
  6652.  ???    HSPATTO    Set Pattern Reference Point (see #03942)
  6653.  ???    HEGS    Erase Graphics Screen (see #03902)
  6654.  ???    HSCP    Set Current Position (see #03927)
  6655.  ???    HMRK    Set Marker (see #03908)
  6656.  ???    HCMRK    Set Marker at Current Position (see #03899)
  6657.  ???    HSMARK    Set Marker Shape (see #03937)
  6658.  ???    HSCS    Set Character Set (see #03928)
  6659.  ???    HCHST    Write Character String at Given Position (see #03896)
  6660.  ???    HCCHST    Write Character String at Current Position (see #03895)
  6661.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #03923)
  6662.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #03880)
  6663.  ???    ABLOCKCGA Write Character Block CGA (see #03878)
  6664.  ???    AERASE    Erase Rectangle (see #03883)
  6665.  ???    ASCROLL Scroll Rectangle (see #03884)
  6666.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #03882)
  6667.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #03885)
  6668.  ???    ASFONT    Set Font (see #03886)
  6669.  ???    AXLATE    Assign Alphanumeric Color (see #03888)
  6670.  
  6671. Format of ABLOCKCGA parameter block:
  6672. Offset    Size    Description    (Table 03878)
  6673.  00h    WORD    000Ah (length of following data)
  6674.  02h    WORD    top-left coordinate of character block
  6675.  04h    WORD    width of block
  6676.  06h    DWORD    -> block of WORDs describing characters (see #03879)
  6677.  0Ah    BYTE    length of block in characters
  6678.  0Bh    BYTE    highlight attribute
  6679.         bit 4: transparent background
  6680.         bit 5: overstrike
  6681.         bit 6: reverse video
  6682.         bit 7: underscore
  6683. SeeAlso: #03880
  6684.  
  6685. Bitfields for one character in ABLOCKCGA character block:
  6686. Bit(s)    Description    (Table 03879)
  6687.  3-0    foreground attribute
  6688.  7-4    background attribute
  6689.  15-8    character code
  6690.  
  6691. Format of ABLOCKMFI parameter block:
  6692. Offset    Size    Description    (Table 03880)
  6693.  00h    WORD    0009h (length of following data)
  6694.  02h    WORD    top-left coordinate of character block
  6695.  04h    WORD    width of block
  6696.  06h    DWORD    -> block of DWORDs describing characters (see #03881)
  6697.  0Ah    BYTE    length of block in characters
  6698. SeeAlso: #03878
  6699.  
  6700. Bitfields for one character in ABLOCKMFI character block:
  6701. Bit(s)    Description    (Table 03881)
  6702.  7-0    reserved
  6703.  9-8    low two bits of font number
  6704.  12    transparent background
  6705.  13    overstrike
  6706.  14    reverse video
  6707.  15    underscore
  6708.  19-16    foreground color attribute
  6709.  23-20    background color attribute
  6710.  31-24    character code
  6711.  
  6712. Format of ACURSOR parameter block:
  6713. Offset    Size    Description    (Table 03882)
  6714.  00h    WORD    0002h (length of following data)
  6715.  02h    BYTE    column (0-based)
  6716.  03h    BYTE    row (0-based)
  6717. SeeAlso: #03885
  6718.  
  6719. Format of AERASE parameter block:
  6720. Offset    Size    Description    (Table 03883)
  6721.  00h    WORD    0005h (length of following data)
  6722.  02h    BYTE    left-most column (0-based)
  6723.  03h    BYTE    top-most row (0-based)
  6724.  04h    BYTE    rectangle's width in character cells
  6725.  05h    BYTE    rectangle's height in character cells
  6726.  06h    BYTE    background color (bits 7-4)
  6727. SeeAlso: #03884
  6728.  
  6729. Format of ASCROLL parameter block:
  6730. Offset    Size    Description    (Table 03884)
  6731.  00h    WORD    0006h (length of following data)
  6732.  02h    BYTE    left-most column (0-based) of source
  6733.  03h    BYTE    top-most row (0-based) of source
  6734.  04h    BYTE    rectangle's width in character cells
  6735.  05h    BYTE    rectangle's height in character cells
  6736.  06h    BYTE    left-most column (0-based) of destination
  6737.  07h    BYTE    top-most row (0-based) of destination
  6738. SeeAlso: #03883
  6739.  
  6740. Format of ASCUR parameter block:
  6741. Offset    Size    Description    (Table 03885)
  6742.  00h    WORD    0003h (length of following data)
  6743.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  6744.  03h    BYTE    cursor stop line
  6745.  04h    BYTE    cursor attribute
  6746.         00h normal
  6747.         01h hidden
  6748.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  6749.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  6750. Notes:    no cursor is shown if the start line is greater than the stop line
  6751.     the alphanumeric cursor is hidden after each mode change
  6752. SeeAlso: #03882,INT 10/AH=01h
  6753.  
  6754. Format of ASFONT parameter block:
  6755. Offset    Size    Description    (Table 03886)
  6756.  00h    WORD    0005h (length of following data)
  6757.  02h    BYTE    font number (0-3)
  6758.  03h    DWORD    -> character set definition block (see #03887)
  6759.  
  6760. Format of 8514/A character set definition block:
  6761. Offset    Size    Description    (Table 03887)
  6762.  00h    BYTE    reserved
  6763.  01h    BYTE    type of character set
  6764.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  6765.  02h    BYTE    reserved
  6766.  03h    DWORD    reserved
  6767.  07h    BYTE    cell width in pixels
  6768.  08h    BYTE    cell height in pixels
  6769.  09h    BYTE    reserved
  6770.  0Ah    WORD    cell size in bytes
  6771.  0Ch    WORD    flags
  6772.         bit 15: reserved (0)
  6773.         bit 14: color bitmap
  6774.         bit 13: proportional spacing
  6775.  0Eh    DWORD    -> index table
  6776.  12h    DWORD    -> character width table
  6777.  16h    BYTE    initial code point
  6778.  17h    BYTE    final code point
  6779.  18h    DWORD    -> character definition table
  6780.  1Ch    WORD    reserved
  6781.  1Eh    DWORD    -> second character definition table
  6782.  22h    WORD    reserved
  6783.  24h    DWORD    -> third character definition table
  6784.  
  6785. Format of AXLATE parameter block:
  6786. Offset    Size    Description    (Table 03888)
  6787.  00h    WORD    0080h (length of following data)
  6788.  02h 64 BYTEs    character foreground translation table
  6789.  42h 64 BYTEs    character background translation table
  6790.  
  6791. Format of HBAR parameter block:
  6792. Offset    Size    Description    (Table 03889)
  6793.  00h    WORD    0000h (no data following)
  6794. SeeAlso: #03901
  6795.  
  6796. Format of HBBC parameter block:
  6797. Offset    Size    Description    (Table 03890)
  6798.  00h    WORD    0010h (length of following data)
  6799.  02h    WORD    data format
  6800.         0000h across-the-plane copy (color expansion)
  6801.         0008h through-the-plane copy
  6802.  04h    WORD    data rectangle's width
  6803.  06h    WORD    data rectangle's height
  6804.  08h    BYTE    source bit plane number (across-the-plane copies only)
  6805.  09h    BYTE    reserved
  6806.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  6807.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6808.           display memory
  6809. Note:    copies data from one location in video memory to another
  6810. SeeAlso: #03891
  6811.  
  6812. Format of HBBCHN parameter block:
  6813. Offset    Size    Description    (Table 03891)
  6814.  00h    WORD    0006h (length of following data)
  6815.  02h    DWORD    -> data buffer in system memory
  6816.  06h    WORD    number of bytes to transfer
  6817. Note:    this function performs the actual data transfer for a bitBLT set up
  6818.       with HBBR, HBBW, or HCBBW
  6819. SeeAlso: #03890,#03892,#03893,#03894
  6820.  
  6821. Format of HBBR parameter block:
  6822. Offset    Size    Description    (Table 03892)
  6823.  00h    WORD    000Ch or 0014h (length of following data)
  6824.  02h    WORD    data format
  6825.         0000h across-the-plane copy (color expansion)
  6826.         0008h through-the-plane copy
  6827.  04h    WORD    data rectangle's width
  6828.  06h    WORD    data rectangle's height
  6829.  08h    BYTE    source bit plane number
  6830.  09h    BYTE    reserved
  6831.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6832.           display memory
  6833. ---optional---
  6834.  0Eh    WORD    sub-rectangle left margin in pixels
  6835.  10h    WORD    sub-rectangle top margin in pixels
  6836.  12h    WORD    sub-rectangle width
  6837.  14h    WORD    sub-rectangle height
  6838. SeeAlso: #03891,#03892,#03894
  6839.  
  6840. Format of HBBW parameter block:
  6841. Offset    Size    Description    (Table 03893)
  6842.  00h    WORD    000Ah or 0012h (length of following data)
  6843.  02h    WORD    data format
  6844.         0000h across-the-plane copy (color expansion)
  6845.         0008h through-the-plane copy
  6846.  04h    WORD    data rectangle's width
  6847.  06h    WORD    data rectangle's height
  6848.  08h  2 WORDs    X,Y coordinates of destination in display memory
  6849. ---optional---
  6850.  0Ch    WORD    sub-rectangle left margin in pixels
  6851.  0Eh    WORD    sub-rectangle top margin in pixels
  6852.  10h    WORD    sub-rectangle width
  6853.  12h    WORD    sub-rectangle height
  6854. SeeAlso: #03891,#03893,#03894
  6855.  
  6856. Format of HCBBW parameter block:
  6857. Offset    Size    Description    (Table 03894)
  6858.  00h    WORD    0006h or 000Eh (length of following data)
  6859.  02h    WORD    data format
  6860.         0000h across-the-plane copy (color expansion)
  6861.         0008h through-the-plane copy
  6862.  04h    WORD    data rectangle's width
  6863.  06h    WORD    data rectangle's height
  6864. ---optional---
  6865.  08h    WORD    sub-rectangle left margin in pixels
  6866.  0Ah    WORD    sub-rectangle top margin in pixels
  6867.  0Ch    WORD    sub-rectangle width
  6868.  0Eh    WORD    sub-rectangle height
  6869. SeeAlso: #03891,#03892,#03893
  6870.  
  6871. Format of HCCHST parameter block:
  6872. Offset    Size    Description    (Table 03895)
  6873.  00h    WORD    length of following data
  6874.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6875. SeeAlso: #03896
  6876.  
  6877. Format of HCHST parameter block:
  6878. Offset    Size    Description    (Table 03896)
  6879.  00h    WORD    length of following data
  6880.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  6881.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6882. SeeAlso: #03895
  6883.  
  6884. Format of HCLINE parameter block:
  6885. Offset    Size    Description    (Table 03897)
  6886.  00h    WORD    length of following data (multiple of 4)
  6887.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6888. Notes:    the first line segment is drawn beginning at the current position
  6889.     on completion, the current position is set to the last point drawn
  6890. SeeAlso: #03907,#03918,#03900
  6891.  
  6892. Format of HCLOSE parameter block:
  6893. Offset    Size    Description    (Table 03898)
  6894.  00h    WORD    0001h (length of following data)
  6895.  01h    BYTE    (ret) return code
  6896. SeeAlso: #03909
  6897.  
  6898. Format of HCMRK parameter block:
  6899. Offset    Size    Description    (Table 03899)
  6900.  00h    WORD    length of following data
  6901.  02h 2N WORDs    X,Y of N points
  6902. Note:    draws N+1 marker symbols, the first one at the current position
  6903. SeeAlso: #03908
  6904.  
  6905. Format of HCRLINE parameter block:
  6906. Offset    Size    Description    (Table 03900)
  6907.  00h    WORD    length of following data (multiple of 4)
  6908.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6909.           (current position for first point) for each of N points in
  6910.           polyline
  6911. Notes:    the first line segment is drawn beginning at the current position
  6912.     on completion, the current position is set to the last point drawn
  6913. SeeAlso: #03907,#03897,#03918
  6914.  
  6915. Format of HEAR parameter block:
  6916. Offset    Size    Description    (Table 03901)
  6917.  00h    WORD    0001h (length of following data)
  6918.  02h    BYTE    area definition flags
  6919.         bits 7-6: End Area type
  6920.             00 complete, perform fill
  6921.             01 suspend definition
  6922.             10 complete, but don't fill
  6923. SeeAlso: #03889
  6924.  
  6925. Format of HEGS parameter block:
  6926. Offset    Size    Description    (Table 03902)
  6927.  00h    WORD    0000h (no data following)
  6928.  
  6929. Format of HESC parameter block:
  6930. Offset    Size    Description    (Table 03903)
  6931.  00h    WORD    0000h (no data following)
  6932.  
  6933. Format of HINIT parameter block:
  6934. Offset    Size    Description    (Table 03904)
  6935.  00h    WORD    0002h (length of following data)
  6936.  02h    WORD    segment of task buffer
  6937. SeeAlso: #03943
  6938.  
  6939. Format of HINT parameter block:
  6940. Offset    Size    Description    (Table 03905)
  6941.  00h    WORD    0004h (length of following data)
  6942.  02h    DWORD    interrupt/event identifier
  6943.         bit 31: vertical blanking
  6944.  
  6945. Format of HLDPAL parameter block:
  6946. Offset    Size    Description    (Table 03906)
  6947.  00h    WORD    000Ah (length of following data)
  6948.  02h    BYTE    palette ID (00h = user, 01h = default)
  6949.  03h    BYTE    reserved
  6950.  04h    WORD    number of first palette entry
  6951.  06h    WORD    number of entries
  6952.  08h    DWORD    -> palette entries
  6953. SeeAlso: #03940
  6954.  
  6955. Format of HLINE parameter block:
  6956. Offset    Size    Description    (Table 03907)
  6957.  00h    WORD    length of following data (multiple of 4)
  6958.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6959. Note:    on completion, the current position is set to the last point drawn
  6960. SeeAlso: #03897,#03918,#03900
  6961.  
  6962. Format of HMRK parameter block:
  6963. Offset    Size    Description    (Table 03908)
  6964.  00h    WORD    length of following data (multiple of 4)
  6965.  02h 2N WORDs    X,Y for N points
  6966. SeeAlso: #03899
  6967.  
  6968. Format of HOPEN parameter block:
  6969. Offset    Size    Description    (Table 03909)
  6970.  00h    WORD    0003h (length of following data)
  6971.  01h    BYTE    initialization flags
  6972.         bit 6: don't load default palette
  6973.         bit 7: clear bitplanes
  6974.  02h    BYTE    mode type (see #03910)
  6975.  03h    BYTE    (ret) return code
  6976.         bit 7: no adapter (hardware mismatch)
  6977. SeeAlso: #03898
  6978.  
  6979. (Table 03910)
  6980. Values for 8514/A display mode:
  6981.  0000h    12x20 characters, 1024x768
  6982.  0001h    8x14 characters, 640x480
  6983.  0002h    8x14 characters, 1024x768
  6984.  0003h    7x15 characters, 1024x768
  6985.  
  6986. Format of HQCOORD parameter block:
  6987. Offset    Size    Description    (Table 03911)
  6988.  00h    WORD    0004h (length of following data)
  6989.  02h    BYTE    (ret) coordinate format
  6990.         bits 7-4: bytes per coordinate
  6991.         bits 3-0: fraction bytes in coordinate
  6992.  03h    BYTE    (ret) relative coordinate format
  6993.         bits 7-4: bytes per coordinate
  6994.         bits 3-0: fraction bytes in coordinate
  6995.  04h    BYTE    (ret) number of dimensions (2-4)
  6996.  05h    BYTE    (ret) test results
  6997.         bit 7: coordinate format not supported
  6998.         bit 6: relative coordinate format not supported
  6999.         bit 5: specified dimension not supported
  7000.  
  7001. Format of HQCP parameter block:
  7002. Offset    Size    Description    (Table 03912)
  7003.  00h    WORD    0004h (length of following data)
  7004.  02h    WORD    (ret) current X position
  7005.  04h    WORD    (ret) current Y position
  7006.  
  7007. Format of HQDFPAL parameter block:
  7008. Offset    Size    Description    (Table 03913)
  7009.  00h    WORD    0040h (length of following data)
  7010.  02h 16    DWORDs    (ret) color index values
  7011. Note:    the default palette is set to match the default EGA/VGA 16-color
  7012.       palettes
  7013.  
  7014. Format of HQDPS parameter block:
  7015. Offset    Size    Description    (Table 03914)
  7016.  00h    WORD    0006h (length of following data)
  7017.  02h    WORD    (ret) size of data buffer in bytes
  7018.  04h    WORD    (ret) stack size in bytes
  7019.  06h    WORD    (ret) size of palette save buffer in bytes
  7020.  
  7021. Format of HQMODE parameter block:
  7022. Offset    Size    Description    (Table 03915)
  7023.  00h    WORD    0012h (length of following data)
  7024.  02h    BYTE    current video mode (see #03910)
  7025.  03h    WORD    driver version
  7026.         bit 6: 80286/8086 CPU
  7027.         bit 5: 8 bit planes instead of 4 planes
  7028.         bits 4-0: hardware release number
  7029.  05h    BYTE    adapter type
  7030.         03h 8514/A
  7031.         04h XGA
  7032.  06h    BYTE    reserved (display type)
  7033.  07h    BYTE    character cell width
  7034.  08h    BYTE    character cell height
  7035.  09h    BYTE    number of bit planes
  7036.  0Ah    WORD    screen width (pixels)
  7037.  0Ch    WORD    screen height (pixels)
  7038.  0Eh    WORD    horizontal resolution (pixels/inch)
  7039.  10h    WORD    vertical resolution (pixels/inch)
  7040.  12h    BYTE    flag: 00h = monochrome, FFh = color
  7041.  13h    BYTE    intensity levels
  7042. SeeAlso: #03916
  7043.  
  7044. Format of HQMODES parameter block:
  7045. Offset    Size    Description    (Table 03916)
  7046.  00h    WORD    0021h (length of following data)
  7047.  02h    BYTE    (ret) adapter type
  7048.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  7049. SeeAlso: #03915
  7050.  
  7051. Format of HRECT parameter block:
  7052. Offset    Size    Description    (Table 03917)
  7053.  00h    WORD    0008h (legth of following data)
  7054.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  7055.  06h    WORD    rectangle's width
  7056.  08h    WORD    rectangle's height
  7057. Note:    the rectangle is filled using the current pattern, color, and mix
  7058.  
  7059. Format of HRLINE parameter block:
  7060. Offset    Size    Description    (Table 03918)
  7061.  00h    WORD    length of following data (multiple of 4)
  7062.  02h  2 WORDs    X,Y coordinates of starting point
  7063.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  7064.           for each of N points in polyline
  7065. Note:    on completion, the current position is set to the last point drawn
  7066. SeeAlso: #03907,#03897,#03900
  7067.  
  7068. Format of HRLPC parameter block:
  7069. Offset    Size    Description    (Table 03919)
  7070.  00h    WORD    0000h (no data following)
  7071. Note:    used for continuity of lines crossing scissors boundaries
  7072. SeeAlso: #03932
  7073.  
  7074. Format of HRPAL parameter block:
  7075. Offset    Size    Description    (Table 03920)
  7076.  00h    WORD    0300h (length of following data)
  7077.  02h 768 BYTEs    buffer containing previously-saved palette table
  7078. SeeAlso: #03940
  7079.  
  7080. Format of HSBCOL parameter block:
  7081. Offset    Size    Description    (Table 03921)
  7082.  00h    WORD    0004h (length of following data)
  7083.  02h    DWORD    color index for new background color
  7084. SeeAlso: #03925
  7085.  
  7086. Format of HSBP parameter block:
  7087. Offset    Size    Description    (Table 03922)
  7088.  00h    WORD    000Ch (length of following data)
  7089.  02h    DWORD    bitmask for graphics updates
  7090.  06h    DWORD    bitmask for alphanumeric updates
  7091.  0Ah    DWORD    display bitmask
  7092.  
  7093. Format of HSCELL parameter block:
  7094. Offset    Size    Description    (Table 03923)
  7095.  00h
  7096.  
  7097. Format of HSCMP parameter block:
  7098. Offset    Size    Description    (Table 03924)
  7099.  00h    WORD    0005h (length of following data)
  7100.  02h    DWORD    comparison color
  7101.  06h    BYTE    logical operation
  7102.         00h True
  7103.         01h pel > testcolor
  7104.         02h pel == testcolor
  7105.         03h pel < testcolor
  7106.         04h False
  7107.         05h pel >= testcolor
  7108.         06h pel <> testcolor
  7109.         07h pel <= testcolor
  7110.  
  7111. Format of HSCOL parameter block:
  7112. Offset    Size    Description    (Table 03925)
  7113.  00h    WORD    0004h (length of following data)
  7114.  02h    DWORD    color index for new foreground color
  7115. SeeAlso: #03921
  7116.  
  7117. Format of HSCOORD parameter block:
  7118. Offset    Size    Description    (Table 03926)
  7119.  00h    WORD    0003h (length of following data)
  7120.  02h    BYTE    coordinate format
  7121.         bits 7-4: bytes per coordinate
  7122.         bits 3-0: fraction bytes in coordinate
  7123.  03h    BYTE    relative coordinates format
  7124.         bits 7-4: bytes per coordinate
  7125.         bits 3-0: fraction bytes in coordinate
  7126.  04h    BYTE    number of dimensions (2-4)
  7127.  
  7128. Format of HSCP parameter block:
  7129. Offset    Size    Description    (Table 03927)
  7130.  00h    WORD    0004h (length of following data)
  7131.  02h  2 WORDs    X,Y or coordinate for new current position
  7132.  
  7133. Format of HSCS parameter block:
  7134. Offset    Size    Description    (Table 03928)
  7135.  00h    WORD    0004h (length of following data)
  7136.  02h    DWORD    -> character set definition
  7137.  
  7138. Format of HSGQ parameter block:
  7139. Offset    Size    Description    (Table 03929)
  7140.  00h    WORD    0002h (length of following data)
  7141.  02h    WORD    quality settings (see #03931)
  7142.  
  7143. Format of HSHS parameter block:
  7144. Offset    Size    Description    (Table 03930)
  7145.  00h    WORD    0008h (length of following data)
  7146.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  7147.  04h    WORD    right edge
  7148.  06h    WORD    top edge
  7149.  08h    WORD    bottom edget
  7150.  
  7151. Bitfields for 8514/A quality settings:
  7152. Bit(s)    Description    (Table 03931)
  7153.  15    reserved
  7154.  14    high precision
  7155.  13    reserved
  7156.  12-11    pel code
  7157.     00 not drawn
  7158.     01 drawn
  7159.     02 conditional on overpainting/mixes
  7160.  10    don't close areas to be filed
  7161.  9-0    reserved
  7162.  
  7163. Format of HSLPC parameter block:
  7164. Offset    Size    Description    (Table 03932)
  7165.  00h    WORD    0000h (no data following)
  7166. Note:    used for continuity of lines crossing scissors boundaries
  7167. SeeAlso: #03919
  7168.  
  7169. Format of HSLT parameter block:
  7170. Offset    Size    Description    (Table 03933)
  7171.  00h    WORD    0006h (length of following data)
  7172.  02h    BYTE    line type (see #03934)
  7173.  03h    BYTE    reserved
  7174.  04h    DWORD    -> user line-type definition (if user type)
  7175. SeeAlso: #03935
  7176.  
  7177. (Table 03934)
  7178. Values for 8514/A line type:
  7179.  00h    user line type
  7180.  01h    dotted
  7181.  02h    short dashes
  7182.  03h    dash-dot
  7183.  04h    double dotted
  7184.  05h    dashed
  7185.  06h    dash double dot
  7186.  07h    solid
  7187.  08h    invisible
  7188. SeeAlso: #03933
  7189.  
  7190. Format of HSLW parameter block:
  7191. Offset    Size    Description    (Table 03935)
  7192.  00h    WORD    0001h (length of following data)
  7193.  02h    BYTE    width of line in pixels
  7194. SeeAlso: #03933
  7195.  
  7196. Format of HSMODE parameter block:
  7197. Offset    Size    Description    (Table 03936)
  7198.  00h    WORD    0001h (length of following data)
  7199.  02h    BYTE    new display mode number (see #03910)
  7200.  
  7201. Format of HSMRK paramter block:
  7202. Offset    Size    Description    (Table 03937)
  7203.  00h    WORD    000Eh (length of following data)
  7204.  02h    BYTE    cell width
  7205.  03h    BYTE    cell height
  7206.  04h    BYTE    flags
  7207.  05h    BYTE    reserved
  7208.  06h    WORD    length of marker symbol
  7209.  08h    DWORD    -> image definition data
  7210.  0Ch    DWORD    -> color definition data
  7211. SeeAlso: #03941
  7212.  
  7213. Format of HSMX parameter block:
  7214. Offset    Size    Description    (Table 03938)
  7215.  00h    WORD    0002h (length of following data)
  7216.  02h    BYTE    foreground mix (see #03939)
  7217.  03h    BYTE    background mix (see #03939)
  7218.  
  7219. (Table 03939)
  7220. Values for 8514/A mix:
  7221.  00h    retain previous mix
  7222.  01h    source OR destination
  7223.  02h    source
  7224.  04h    source XOR destination
  7225.  05h    leave as-is
  7226.  06h    max(source,destination)
  7227.  07h    min(source,destination)
  7228.  08h    source+destination (clipped)
  7229.  09h    destination-source (clipped to zero)
  7230.  0Ah    source-destination (clipped to zero)
  7231.  0Bh    average source and destination
  7232.  10h    zero destination
  7233.  11h    source AND destination
  7234.  12h    source AND NOT destination
  7235.  13h    source
  7236.  14h    NOT source AND destination
  7237.  15h    leave as-is
  7238.  16h    source XOR destination
  7239.  17h    source OR destination
  7240.  18h    NOT source AND NOT destination
  7241.  19h    NOT (source XOR destination)
  7242.  1Ah    NOT destination
  7243.  1Bh    source OR NOT destination
  7244.  1Ch    NOT source
  7245.  1Dh    NOT source OR destination
  7246.  1Eh    NOT source OR NOT destination
  7247.  1Fh    set all bits of destination
  7248.  
  7249. Format of HSPAL parameter block:
  7250. Offset    Size    Description    (Table 03940)
  7251.  00h    WORD    0300h (length of following data)
  7252.  02h 768 BYTEs    buffer for palette table
  7253. SeeAlso: #03906,#03920
  7254.  
  7255. Format of HSPATT parameter block:
  7256. Offset    Size    Description    (Table 03941)
  7257.  00h    WORD    000Eh (length of following data)
  7258.  02h    BYTE    cell width
  7259.  03h    BYTE    cell height
  7260.  04h    BYTE    flags
  7261.  05h    BYTE    reserved
  7262.  06h    WORD    length of marker symbol
  7263.  08h    DWORD    -> image definition data
  7264.  0Ch    DWORD    -> color definition data
  7265. SeeAlso: #03937,#03942
  7266.  
  7267. Format of HSPATTO parameter block:
  7268. Offset    Size    Description    (Table 03942)
  7269.  00h    WORD    0004h (length of following data)
  7270.  02h  2 WORDs    X,Y of pattern reference point (origin)
  7271. SeeAlso: #03941
  7272.  
  7273. Format of HSYNC parameter block:
  7274. Offset    Size    Description    (Table 03943)
  7275.  00h    WORD    0002h (length of following data)
  7276.  02h    WORD    segment of task state buffer
  7277. SeeAlso: #03904
  7278.  
  7279. Format of HXLATE parameter block:
  7280. Offset    Size    Description    (Table 03944)
  7281.  00h    WORD    0020h (length of following data)
  7282.  02h 32 BYTEs    color index table
  7283. --------V-7F0105-----------------------------
  7284. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  7285.     AX = 0105h
  7286. Return: CF set on error
  7287.     CF clear if successful
  7288.         CX:DX -> array of FAR pointers to entry points (see #03877)
  7289. Note:    this API is a superset of the 8514/A Adapter Interface
  7290.       (see AX=0105h"HDILOAD")
  7291. --------V-7F0106-----------------------------
  7292. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  7293.     AX = 0106h
  7294. Return: AX = 0105h if successfully unloaded
  7295. SeeAlso: AX=0105h
  7296. --------N-7F02-------------------------------
  7297. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  7298.     AH = 02h
  7299.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  7300. Return: AL = status (see #03871)
  7301.     AH = semaphore owner if status=02h
  7302. SeeAlso: AH=00h,AH=01h,AH=42h
  7303. --------T-7F02-------------------------------
  7304. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  7305.     AH = 02h
  7306. Return: ???
  7307. Desc:    yields CPU to other tasks
  7308. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  7309. --------N-7F02-------------------------------
  7310. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  7311.     AH = 02h
  7312.     AL = stream number (01h-40h)
  7313.     CX = length of frame
  7314.     ES:SI -> frame to be sent
  7315. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  7316. --------f-7F0200-----------------------------
  7317. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  7318.     AX = 0200h
  7319. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  7320. --------N-7F03-------------------------------
  7321. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  7322.     AH = 03h
  7323. Return: AL = user number
  7324.     AH = machine number (MW386)
  7325. Note:    this function call is the recommended method for a CPU-bound process to
  7326.       prevent its priority from being lowered
  7327. SeeAlso: AH=04h,AH=05h,AH=A1h
  7328. --------N-7F03-------------------------------
  7329. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  7330.     AH = 03h
  7331.     AL = stream number (01h-40h)
  7332.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  7333.           bytes is usually sufficient)
  7334. Return: BX = number of pending frames (0000h if returned frame was last avail)
  7335.     CX = length of received frame
  7336. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  7337. --------N-7F04-------------------------------
  7338. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  7339.     AH = 04h
  7340. Return: AL = total number of users on currrent machine (MW386)
  7341.     AL = number of slaves on system (NTNX)
  7342. SeeAlso: AH=03h
  7343. --------N-7F04-------------------------------
  7344. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  7345.     AH = 04h
  7346.     AL = stream number (01h-40h)
  7347. Return: CX = state (0000h disconnected, 0001h connected)
  7348.     DX = delta state (0000h no change, 0001h changed since last check)
  7349. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  7350. --------N-7F05-------------------------------
  7351. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  7352.     AH = 05h
  7353.     AL = function
  7354.         00h lock system (disable slave services)
  7355.         01h unlock system
  7356.         02h enable spooler
  7357.         03h disable spooler
  7358.         04h enable slave timer update
  7359.         05h disable slave timer update
  7360.         06h enable form feeds
  7361.         07h disable form feeds
  7362. SeeAlso: INT 17/AH=A4h
  7363. --------N-7F05-------------------------------
  7364. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  7365.     AH = 05h
  7366.     DX:DI -> buffer for user information record (see #03945)
  7367. Notes:    MW386 provides this function for backward compatibility only, and sets
  7368.       many of the fields to zero because they are meaningless under MW386
  7369.     this function has no effect when called by the host (user 0)
  7370. SeeAlso: AH=03h
  7371.  
  7372. Format of Alloy user information record:
  7373. Offset    Size    Description    (Table 03945)
  7374.  00h    WORD    segment of video RAM
  7375.  02h    WORD    segment of secondary copy of video RAM
  7376.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  7377.         flag nonzero if update needed
  7378.  06h    WORD    video NMI enable port
  7379.         (not used by MW386, set to 0000h)
  7380.  08h    WORD    video NMI disable port
  7381.         (not used by MW386, set to 0000h)
  7382.  0Ah    BYTE    processor type
  7383.         00h 8088
  7384.         01h V20
  7385.         02h 8086
  7386.         03h V30
  7387.         06h 80386
  7388.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  7389.         (not used by MW386, set to 0000h)
  7390.  0Dh    WORD    offset of terminal driver
  7391.         (not used by MW386, set to 0000h)
  7392.  0Fh    BYTE    port for console I/O
  7393.         (not used by MW386, set to 0000h)
  7394.  10h    WORD    offset of processor communication busy flag
  7395.         bit 7 set when slave communicating with host
  7396.  12h    WORD    pointer to FAR NX system call
  7397.         (not used by MW386, set to 0000h)
  7398.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  7399.  16h    WORD    offset of command/status word
  7400.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  7401.         nonzero if screen must be repainted
  7402.  1Ah    WORD    offset of screen repaint flag
  7403.  1Ch    WORD    pointer to NEAR NX system call
  7404.         (not used by MW386, set to 0000h)
  7405.  1Eh    WORD    offset for intercept flags
  7406.         (not used by MW386, set to 0000h)
  7407.         intercept flag = FFh if MS-DOS intercepts should be disabled
  7408.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  7409.         lock flag = FFh if backgrnd screen updates should be suspended
  7410.  22h 26 BYTEs    reserved
  7411. --------N-7F05-------------------------------
  7412. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  7413.     AH = 05h
  7414.     AL = stream number (01h-40h)
  7415. Note:    this function must be called in order to receive a report of another
  7416.       status change
  7417. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  7418. --------N-7F06-------------------------------
  7419. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  7420.     AH = 06h
  7421.     AL = drive number (1=A:, 2=B:, etc)
  7422.     ES:DI -> drive info record (see #03946)
  7423. Return: AX = status
  7424.         0000h successful
  7425.         ES:DI buffer filled
  7426.         0001h not shared drive
  7427.  
  7428. Format of Alloy drive info record:
  7429. Offset    Size    Description    (Table 03946)
  7430.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  7431.  02h    WORD    segment of allocation map (owner table)
  7432.         one byte per FAT entry, containing user ID owning that entry
  7433.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  7434.  06h    WORD    pointer to configuration file
  7435.  08h    WORD    total number of clusters
  7436.  0Ah    WORD    bytes per sector
  7437.  0Ch    WORD    sectors per cluster
  7438.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  7439. --------N-7F06-------------------------------
  7440. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  7441.     AH = 06h
  7442.     DL = drive number (1=A:,2=B:,etc)
  7443.     CX = number of clusters to allocate
  7444. Return: AH = status
  7445.         00h successful
  7446.         CX = number of clusters still free
  7447.         10h invalid shared drive request
  7448.         CL = first and second shared drives
  7449.         11h invalid cluster count (must be 01h-FFh)
  7450. --------N-7F06-------------------------------
  7451. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  7452.     AH = 06h
  7453.     AL = stream number (01h-40h)
  7454.     CX = subfunction
  7455.         0000h connect to node
  7456.         DL bit 0: use BBS callsign instead of Node Call
  7457.         0001h connect to node
  7458.         use BBS Call if APPLMASK=1
  7459.         0002h disconnect
  7460.         0003h return user to node
  7461. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  7462. --------N-7F07-------------------------------
  7463. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  7464.     AH = 07h
  7465. Return: ES:DI -> shared drive list (see #03947)
  7466. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  7467.       be returned as shared
  7468.  
  7469. Format of Alloy shared drive list:
  7470. Offset    Size    Description    (Table 03947)
  7471.  00h    BYTE    string length
  7472.  01h    BYTE    number of shared drives
  7473.  02h  N BYTEs    one byte per shared drive
  7474. --------N-7F07-------------------------------
  7475. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  7476.     AH = 07h
  7477.     AL = stream number (01h-40h)
  7478. Return: BX = number of pending receive frames
  7479.     CX = number of unacknowledged sent frames
  7480.     DX = number of buffers available
  7481. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  7482. --------N-7F08-------------------------------
  7483. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  7484.     AH = 08h
  7485.     CL = function
  7486.         00h get original interrupt vector
  7487.         01h get Network Executive interrrupt
  7488.     AL = interrupt number
  7489.     DX:SI -> DWORD to hold interrupt vector
  7490. Return: AL = status
  7491.         00h successful
  7492.         01h interrupt vector not used by network executive
  7493.         02h invalid subfunction
  7494. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  7495.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  7496. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  7497. --------N-7F08--CL02-------------------------
  7498. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  7499.     AH = 08h
  7500.     CL = 02h
  7501.     DX = timeout in seconds
  7502. Return: AL = status
  7503.         00h successful
  7504.         02h invalid subfunction
  7505. --------N-7F08-------------------------------
  7506. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  7507.     AH = 08h
  7508.     AL = stream number (01h-40h)
  7509. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  7510.     ---v4.05+ ---
  7511.     AL = radio port to which channel is connected (level 2)
  7512.     AH = session type (see #03948)
  7513.     BX = L2 paclen for session
  7514.     CX = maximum frame size
  7515.     DX = L4 window size or 0000h if not L4 circuit
  7516. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  7517.       John Wiseman which allows a PC to act as a node in an AX.25 network
  7518. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  7519.  
  7520. Bitfields for G8BPQ session type:
  7521. Bit(s)    Description    (Table 03948)
  7522.  0    L2LINK
  7523.  1    SESSION
  7524.  2    UPLINK
  7525.  3    DOWNLIND
  7526.  5    BPQHOST
  7527. --------T-7F09-------------------------------
  7528. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  7529.     AH = 09h
  7530.     AL = priority (0-7)
  7531. Return: nothing
  7532. InstallCheck:    ensure that the interrupt vector is not pointing at segment
  7533.       0000h, then test whether the byte at offset 0000h in the interrupt
  7534.       handler's segment is E9h
  7535. Index:    installation check;MultiLink Advanced
  7536. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  7537. --------N-7F09-------------------------------
  7538. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  7539.     AH = 09h
  7540.     AL = application
  7541.         00h node
  7542.         01h BBS
  7543.         02h HOST
  7544.         03h SYSOP
  7545.     BL = what to get (00h callsign, 01h application name)
  7546.     ES:SI -> buffer for callsign/name string
  7547. Return: CX = length of returned string
  7548. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  7549. --------N-7F09-------------------------------
  7550. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  7551.     AH = 09h
  7552.     CL = function
  7553.         00h enable checking of RTNX.MUD file
  7554.         01h disable RTNX.MUD checking
  7555. --------N-7F09--CL02-------------------------
  7556. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  7557.     AH = 09h
  7558.     CL = 02h
  7559. Note:    in dedicated mode, the host will only poll for I/O requests from the
  7560.       slave processors, and not provide workstation services
  7561. --------N-7F09--CL03-------------------------
  7562. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  7563.     AH = 09h
  7564.     CL = 03h
  7565.     AL = default interrupt number (67h,7Fh,etc)
  7566. Return: CL = actual interrupt which handles specified interrupt's calls
  7567. SeeAlso: AH=08h
  7568. --------N-7F0A--CL00-------------------------
  7569. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  7570.     AH = 0Ah
  7571.     CL = 00h
  7572.     ES:DI -> buffer for system flags (see #03949)
  7573. Return: ES:DI buffer filled
  7574. Notes:    on a slave, only the NX_Busy flag is returned
  7575.     all three flags are at fixed positions, so this function only needs to
  7576.       be called once
  7577.     an interrupt handler should only perform DOS or device accesses when
  7578.       all three flags are 00h
  7579.  
  7580. Format of Alloy system flags:
  7581. Offset    Size    Description    (Table 03949)
  7582.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  7583.  04h    DWORD    pointer to device driver busy flag
  7584.  08h    DWORD    pointer to InTimer flag
  7585. --------N-7F0A-------------------------------
  7586. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  7587.     AH = 0Ah
  7588.     AL = radio port
  7589.     ES:SI -> buffer containing data to be sent
  7590.     CX = number of bytes to send
  7591. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  7592. --------T-7F0A-------------------------------
  7593. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  7594.     AH = 0Ah
  7595.     AL = task-switch status
  7596.         00h normal (disable task when it repeatedly polls keyboard)
  7597.         01h disable task until keyboard input available
  7598.         FFh never disable task
  7599. Return: ???
  7600. SeeAlso: AH=09h"MultiLink"
  7601. --------N-7F0B--CL02-------------------------
  7602. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  7603.     AH = 0Bh
  7604.     CL = 02h
  7605.     AL = slave ID number
  7606.     CH = DOS to activate
  7607.         00h graphics DOS
  7608.         01h character DOS
  7609. Return: AL = status
  7610.         00h successful
  7611.         01h nothing done, proper DOS type already loaded
  7612. --------N-7F0B-------------------------------
  7613. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  7614.     AH = 0Bh
  7615.     ES:DI -> buffer for received data (see #03950)
  7616. Return: CX = number of bytes received
  7617. Note:    the specified buffer must be large enough to receive a full frame
  7618. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  7619.  
  7620. Format of G8BPQ received data:
  7621. Offset    Size    Description    (Table 03950)
  7622.  00h    WORD    internal control information
  7623.  02h    BYTE    port number (bit 7 set if transmitted frame)
  7624.  03h    WORD    frame length including this header
  7625.  05h    var    user data
  7626. --------N-7F0C-------------------------------
  7627. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  7628.     AH = 0Ch
  7629.     DX = function
  7630.         0001h update beacon text
  7631.         CX = length of data
  7632.         ES:SI -> data to be sent in beacons
  7633.         0002h (v4.07+) initiate NODES broadcast
  7634. SeeAlso: AH=09h"G8BPQ"
  7635. --------N-7F0D00-----------------------------
  7636. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  7637.     AX = 0D00h
  7638. Return: AL = first available stream number, or FFh if none free
  7639. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  7640. --------N-7F0D-------------------------------
  7641. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  7642.     AH = 0Dh
  7643.     AL = stream number (01h-FFh)
  7644.     CL = function
  7645.         01h allocate stream
  7646.         Return: CX = status (0000h successful, else already in use)
  7647.         02h deallocate stream
  7648. SeeAlso: AX=0D00h
  7649. --------N-7F0F-------------------------------
  7650. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  7651.     AH = 0Fh
  7652. Return: AX = time marker (clock ticks modulo 64K)
  7653. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  7654.       John Wiseman which allows a PC to act as a node in an AX.25 network
  7655. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  7656. --------N-7F10--CL00-------------------------
  7657. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  7658.     AH = 10h
  7659.     CL = 00h
  7660.     AL = channel number
  7661.     DX:DI -> channel buffer
  7662. Return: AL = status (00h-03h,0Dh) (see #03951)
  7663. Note:    may not be invoked from within a hardware interrupt handler
  7664. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  7665.  
  7666. (Table 03951)
  7667. Values for Alloy function status:
  7668.  00h    successful
  7669.  01h    busy
  7670.  02h    channel range error (not 00h-3Fh)
  7671.  03h    invalid subfunction
  7672.  0Ah    channel not open
  7673.  0Ch    channel already locked
  7674.  0Dh    unable to open
  7675. --------N-7F10--CL01-------------------------
  7676. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  7677.     AH = 10h
  7678.     CL = 01h
  7679.     AL = channel number
  7680. Return: AL = status (00h-03h,0Ah) (see #03951)
  7681. Note:    may not be invoked from within a hardware interrupt handler
  7682. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  7683. --------N-7F10--CL02-------------------------
  7684. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  7685.     AH = 10h
  7686.     CL = 02h
  7687.     AL = channel number
  7688. Return: AL = status (00h-03h,0Ah,0Ch) (see #03951)
  7689. Note:    may not be invoked from within a hardware interrupt handler
  7690. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  7691. --------N-7F10--CL03-------------------------
  7692. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  7693.     AH = 10h
  7694.     CL = 03h
  7695.     AL = channel number
  7696. Return: AL = status (00h-03h,0Ah) (see #03951)
  7697. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  7698.       locked by receipt of a datagram
  7699.     may not be invoked from within a hardware interrupt handler
  7700. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  7701. --------N-7F10--CL04-------------------------
  7702. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  7703.     AH = 10h
  7704.     CL = 04h
  7705.     AL = channel number
  7706. Return: AL = status (00h-03h) (see #03951)
  7707. Notes:    unlocks buffer after received datagram has been processed
  7708.     may not be invoked from within a hardware interrupt handler
  7709. SeeAlso: AH=10h/CL=00h
  7710. --------N-7F10--CL05-------------------------
  7711. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  7712.     AH = 10h
  7713.     CL = 05h
  7714. Return: AL = status (00h-03h) (see #03951)
  7715. Notes:    clears all pending datagrams and clears buffer pointers before closing
  7716.       the channels
  7717.     may not be invoked from within a hardware interrupt handler
  7718. SeeAlso: AH=10h/CL=01h
  7719. --------N-7F10--CL06-------------------------
  7720. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  7721.     AH = 10h
  7722.     CL = 06h
  7723. Return: AL = status (00h-03h) (see #03951)
  7724. Note:    may not be invoked from within a hardware interrupt handler
  7725. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  7726. --------N-7F10--CL07-------------------------
  7727. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  7728.     AH = 10h
  7729.     CL = 07h
  7730. Return: AL = status (00h-03h) (see #03951)
  7731. Notes:    unlocks all locked channels which have no pending datagrams
  7732.     may not be invoked from within a hardware interrupt handler
  7733. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  7734. --------N-7F10--CL08-------------------------
  7735. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  7736.     AH = 10h
  7737.     CL = 08h
  7738.     DX = maximum channel number to lock
  7739. Return: AL = status (00h-03h) (see #03951)
  7740. Notes:    locks channels numbered 00h through the value in DX
  7741.     may not be invoked from within a hardware interrupt handler
  7742. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  7743. --------N-7F10--CL09-------------------------
  7744. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  7745.     AH = 10h
  7746.     CL = 09h
  7747.     DX = maximum channel number to unlock
  7748. Return: AL = status (00h-03h) (see #03951)
  7749. Notes:    unlocks channels numbered 00h through the value in DX
  7750.     may not be invoked from within a hardware interrupt handler
  7751. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  7752. --------N-7F11-------------------------------
  7753. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  7754.     AH = 11h
  7755.     DX:SI -> request block (see #03953)
  7756. Return: AL = status (see #03952)
  7757. Note:    if wildcard channel FFh used, actual channel number will be filled in
  7758. SeeAlso: AH=12h
  7759.  
  7760. (Table 03952)
  7761. Values for Alloy function status:
  7762.  00h    successful
  7763.  01h    busy
  7764.  02h    channel range error (not 00h-3Fh)
  7765.  03h    invalid subfunction
  7766.  0Ah    packet too large (or <2 bytes if NTNX)
  7767.  0Bh    can't send packet to itself
  7768.  0Ch    invalid number of destinations
  7769.  0Dh    destination channel number out of range
  7770.  0Eh    destination user is busy
  7771.  0Fh    destination user has locked channel
  7772.  10h    channel not open
  7773.  11h    no datagram server on destination (NTNX)
  7774.  
  7775. Format of Alloy request block:
  7776. Offset    Size    Description    (Table 03953)
  7777.  00h    DWORD    pointer to packet to send
  7778.  04h    WORD    packet size in bytes (1-4096)
  7779.  06h    BYTE    number of destinations for packet (max 1Fh)
  7780.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  7781.  26h 31 BYTEs    destination channels (FFh = first available channel)
  7782.  45h 31 BYTEs    return destination statuses
  7783. --------N-7F12-------------------------------
  7784. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  7785.     AH = 12h
  7786.     AL = channel number being acknowledged
  7787.     DI:DX = 32-bit status to return to sender
  7788. Return: AL = status (see #03954)
  7789. Note:    also unlocks the channel, allowing the next datagram to be received
  7790. SeeAlso: AH=11h,AH=15h/CL=04h
  7791.  
  7792. (Table 03954)
  7793. Values for Alloy function status:
  7794.  00h    successful
  7795.  01h    busy
  7796.  02h    channel range error (not 00h-3Fh)
  7797.  03h    invalid subfunction
  7798.  0Ah    channel not open
  7799.  0Bh    no message in channel
  7800.  0Ch    destination slave busy--retry (NTNX)
  7801.  0Dh    destination user not active
  7802.  0Eh    destination slave not active (NTNX)
  7803.  0Fh    destination disabled datagram service
  7804. --------V-7F1234-----------------------------
  7805. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  7806.     AX = 1234h
  7807. SeeAlso: AX=4321h
  7808. --------N-7F13--CL00-------------------------
  7809. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  7810.     AH = 13h
  7811.     CL = 00h
  7812. Note:    clears all pending datagrams and removes all channels opened in NTNX
  7813.       compatibility mode
  7814. --------N-7F14--CL00-------------------------
  7815. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  7816.     AH = 14h
  7817.     CL = 00h
  7818.     DX:DI -> application FAR receive service routine (see #03955)
  7819. Return: AL = status (00h-03h) (see #03954)
  7820. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7821.  
  7822. (Table 03955)
  7823. Values Alloy receive service routine is called with:
  7824.     DH = sender ID
  7825.     DL = channel with datagram
  7826.     interrupts disabled
  7827. Return: AL = response code
  7828.         00h leave buffer locked, set channel status, and repeat call later
  7829.         01h release channel buffer
  7830.         02h change buffer pointer to DX:DI
  7831.     AH,CX,DX,DI,SI may be destroyed
  7832. --------N-7F14--CL01-------------------------
  7833. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  7834.     AH = 14h
  7835.     CL = 01h
  7836.     DX:DI -> application FAR acknowledge service routine (see #03956)
  7837. Return: AL = status (00h-03h) (see #03954)
  7838. Note:    the service routine will be called as soon as an acknowledgment arrives
  7839. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  7840.  
  7841. (Table 03956)
  7842. Values Alloy acknowledge service routine is called with:
  7843.     DS:SI -> acknowledge structure (see #03960)
  7844. Return: AL = response code
  7845.         00h application busy, network executive should call again later
  7846.         01h acknowledge accepted
  7847.     AH,DX,SI may be destroyed
  7848. --------N-7F14--CL02-------------------------
  7849. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  7850.     AH = 14h
  7851.     CL = 02h
  7852.     AL = channel number
  7853.     DX:DI -> receive buffer
  7854. Return: AL = status (00h-03h) (see #03954)
  7855. Note:    may be called from within a receive ISR or when a datagram is pending
  7856. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  7857. --------N-7F14--CL03-------------------------
  7858. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  7859.     AH = 14h
  7860.     CL = 03h
  7861. Return: DX:DI -> current receive ISR
  7862. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  7863. --------N-7F14--CL04-------------------------
  7864. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  7865.     AH = 14h
  7866.     CL = 04h
  7867. Return: DX:DI -> current acknowledge ISR
  7868. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7869. --------N-7F14--CL05-------------------------
  7870. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  7871.     AH = 14h
  7872.     CL = 05h
  7873.     DX:DI -> buffer for busy structure (see #03957)
  7874. Return: DX:DI buffer filled
  7875.  
  7876. Format of Alloy busy structure:
  7877. Offset    Size    Description    (Table 03957)
  7878.  00h    DWORD    pointer to busy flag byte
  7879.  04h    WORD    fixed port address (FF00h)
  7880. --------N-7F15--CL00-------------------------
  7881. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  7882.     AH = 15h
  7883.     CL = 00h
  7884.     AL = channel number
  7885.     DX:DI -> status structure (see #03958)
  7886. Return: AL = status (00h-03h) (see #03954)
  7887. SeeAlso: AH=15h/CL=01h
  7888.  
  7889. Format of Alloy channel status structure:
  7890. Offset    Size    Description    (Table 03958)
  7891.  00h    BYTE    channel status
  7892.         bit 0: channel open
  7893.         bit 1: channel buffer contains received data
  7894.         bit 7: channel locked
  7895.  01h    BYTE    sender ID
  7896. --------N-7F15--CL01-------------------------
  7897. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  7898.     AH = 15h
  7899.     CL = 01h
  7900.     DX:DI -> full-channel structure (see #03959)
  7901. Return: AL = status
  7902.         00h successful
  7903.         01h busy
  7904.         0Ah no datagrams available
  7905. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  7906.       and NTNX return the oldest datagram
  7907. SeeAlso: AH=15h/CL=00h
  7908.  
  7909. Format of Alloy full-channel structure:
  7910. Offset    Size    Description    (Table 03959)
  7911.  00h    BYTE    number of channel with oldest datagram
  7912.  01h    BYTE    sender ID
  7913. --------N-7F15--CL02-------------------------
  7914. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  7915.     AH = 15h
  7916.     CL = 02h
  7917. Return: AH = number of channels available (40h for MW386)
  7918. Note:    the application may always assume at least 32 channels available
  7919. SeeAlso: AH=15h/CL=03h
  7920. --------N-7F15--CL03-------------------------
  7921. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  7922.     AH = 15h
  7923.     CL = 03h
  7924.     DX:DI -> WORD for return value
  7925. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  7926. SeeAlso: AH=15h/CL=02h
  7927. --------N-7F15--CL04-------------------------
  7928. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  7929.     AH = 15h
  7930.     CL = 04h
  7931.     DX:DI -> status structure (see #03960)
  7932. Return: AL = status
  7933.         00h successful
  7934.         DX:DI structure filled
  7935.         01h busy
  7936.         0Ah no acknowledgement has arrived
  7937. SeeAlso: AH=12h,AH=14h/CL=01h
  7938.  
  7939. Format of Alloy status structure:
  7940. Offset    Size    Description    (Table 03960)
  7941.  00h    BYTE    sender ID
  7942.  01h    BYTE    channel number
  7943.  02h  4 BYTEs    receiver status (see #03954)
  7944. --------N-7F16-------------------------------
  7945. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  7946.     AH = 16h
  7947.     DX:SI -> transfer structure (see #03961)
  7948. Return: AL = status
  7949.         00h successful
  7950.         0Ah source or destination out of range
  7951.         0Bh transfer kernel busy--try again
  7952. Notes:    this call transfers memory contents directly between users; both source
  7953.       and destination user IDs may differ from the caller's ID
  7954.     no segment wrap is allowed
  7955.  
  7956. Format of Alloy transfer structure:
  7957. Offset    Size    Description    (Table 03961)
  7958.  00h    WORD    bytes to transfer
  7959.  02h    BYTE    source ID
  7960.         FEh = caller
  7961.  03h    DWORD    source address
  7962.  07h    BYTE    destination ID
  7963.         FFh = all slaves except caller
  7964.         FEh = caller
  7965.  08h    DWORD    destination address
  7966. --------N-7F21-------------------------------
  7967. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  7968.     AH = 21h
  7969.     AL = sender's user ID
  7970.     DS:DX -> control packet (see #03962)
  7971. Note:    messages or commands are ignored if disabled by the destination user
  7972. SeeAlso: AH=22h
  7973.  
  7974. Format of Alloy control packet:
  7975. Offset    Size    Description    (Table 03962)
  7976.  00h    BYTE    packet type
  7977.         00h message
  7978.         01h NTNX command
  7979.         02h MW386 command
  7980.  01h    BYTE    destination user ID or 'A' for all users
  7981.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  7982.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  7983. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  7984. --------N-7F22-------------------------------
  7985. INT 7F - Alloy NTNX - GET MESSAGE
  7986.     AH = 22h
  7987. Return: pending messages displayed on user's screen
  7988. SeeAlso: AH=21h
  7989. --------N-7F24-------------------------------
  7990. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  7991.     AH = 24h
  7992.     CL = function
  7993.         00h attach
  7994.         01h release
  7995.     CH = drive (0=A:,1=B:,etc)
  7996. Return: AX = status (see #03963)
  7997. Note:    only drives on the current machine may be attached
  7998.  
  7999. (Table 03963)
  8000. Values for Alloy function status:
  8001.  00h    successful
  8002.  01h    invalid request
  8003.  02h    already attached
  8004.  03h    not attached
  8005.  04h    lock table full
  8006. --------N-7F24-------------------------------
  8007. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  8008.     AH = 24h
  8009.     CL = function
  8010.         02h attach host
  8011.         03h release host
  8012. Return: AX = status (see #03963)
  8013. Note:    the host processor may be attached in order to perform I/O via the host
  8014. --------N-7F25--CL00-------------------------
  8015. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  8016.     AH = 25h
  8017.     CL = 00h
  8018. Return: AH = version suffix letter
  8019.     CH = major version number
  8020.     CL = minor version number
  8021. SeeAlso: AH=25h/CL=01h
  8022. --------N-7F25--CL01-------------------------
  8023. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  8024.     AH = 25h
  8025.     CL = 01h
  8026. Return: CL = executive type (see #03964)
  8027. SeeAlso: AH=25h/CL=00h
  8028.  
  8029. (Table 03964)
  8030. Values for Alloy network executive type:
  8031.  00h    RTNX
  8032.  01h    ATNX
  8033.  02h    NTNX
  8034.  03h    BTNX
  8035.  04h    MW386
  8036.  05h    ANSK
  8037. --------V-7F2525-----------------------------
  8038. INT 7F - TIGA Communications Driver v2.05 - ???
  8039.     AX = 2525h
  8040.     BX = ???
  8041. Return: ???
  8042. SeeAlso: AX=4321h,AX=5555h
  8043. --------N-7F26--CL00-------------------------
  8044. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  8045.     AH = 26h
  8046.     CL = 00h
  8047. Return: AX = file mode bits (see #03965)
  8048. Note:    MW386 does not support file modes, and always returns AX=001Fh
  8049. SeeAlso: AH=26h,AH=26h/CL=06h
  8050.  
  8051. Bitfields for Alloy file mode bits:
  8052. Bit(s)    Description    (Table 03965)
  8053.  0    directory protection enabled
  8054.  1    extended open enabled
  8055.  2    flush on every disk write
  8056.  3    flush on every disk write in locked interval
  8057.  4    flush on reads from simultaneously opened file
  8058. --------N-7F26-------------------------------
  8059. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  8060.     AH = 26h
  8061.     CL = check type to set/reset
  8062.         01h directory protection
  8063.         02h extended open
  8064.         03h flush on every disk write
  8065.         04h flush on disk write if any lock set during write
  8066.         05h flush on all reads if file written
  8067.     AL = new state (00h off, 01h on)
  8068. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  8069. --------N-7F26--CL06-------------------------
  8070. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  8071.     AH = 26h
  8072.     CL = 06h
  8073. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  8074. SeeAlso: AH=26h/CL=00h
  8075. --------N-7F30-------------------------------
  8076. INT 7F - Alloy MW386 - GET PORT INFORMATION
  8077.     AH = 30h
  8078.     CX = MW386 port number
  8079. Return: AL = result
  8080.         FFh if port not found
  8081.         else driver unit number
  8082.         BL = port mode
  8083.         BH = port type
  8084.             02h remote
  8085.         DH = owner's machine ID
  8086.         DL = owner's user ID
  8087. SeeAlso: INT 17/AH=8Bh
  8088. --------N-7F31-------------------------------
  8089. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  8090.     AH = 31h
  8091.     ???
  8092. Return: ???
  8093. --------N-7F37-------------------------------
  8094. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  8095.     AH = 37h
  8096. Return: ES:AX -> semaphore table
  8097. --------N-7F37-------------------------------
  8098. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  8099.     AH = 37h
  8100.     DS:DX -> ASCIZ string to display
  8101. Note:    if the string is empty, a terminal update will be forced
  8102. --------N-7F38-------------------------------
  8103. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  8104.     AH = 38h
  8105.     AL = new terminal driver number
  8106.         FFh dummy driver
  8107.         FEh current driver
  8108.         FDh load new driver
  8109.         DS:SI -> new driver
  8110. SeeAlso: AH=39h
  8111. --------N-7F39-------------------------------
  8112. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  8113.     AH = 39h
  8114.     AL = new terminal driver number
  8115.         FFh dummy driver
  8116.         FEh current driver
  8117.         FDh load new driver
  8118.         DS:SI -> new driver
  8119.     DL = user number (FFh = caller)
  8120.     DH = machine number if DL <> FFh
  8121. Return: CF set if invalid user number
  8122.     CF clear if successful
  8123. Notes:    only available to supervisors
  8124.     the new driver number will not take effect until the user is rebooted
  8125. SeeAlso: AH=38h
  8126. --------N-7F3A-------------------------------
  8127. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  8128.     AH = 3Ah
  8129.     DL = user number (FFh = caller)
  8130.     DH = machine number
  8131. Return: CF clear if successful
  8132.         AH = terminal driver number
  8133.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  8134.         CL = parity (00h none, 01h even, 02h odd)
  8135.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  8136.     CF set if invalid user number
  8137. SeeAlso: AH=3Bh
  8138. --------N-7F3B-------------------------------
  8139. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  8140.     AH = 3Bh
  8141.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  8142.     CL = parity (00h none, 01h even, 02h odd)
  8143.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  8144.     DL = user number (FFh = caller)
  8145.     DH = machine number for user
  8146. Return: CF set if invalid user number
  8147. Notes:    only available to supervisors
  8148.     the new parameters will take effect immediately if the user's terminal
  8149.       has not been started, else AH=3Dh must be called to post the changes
  8150. SeeAlso: AH=3Ah,AH=3Dh
  8151. --------N-7F3C-------------------------------
  8152. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  8153.     AH = 3Ch
  8154.     AL = new state (00h disabled, 01h enabled)
  8155.     DL = user number (FFh = caller)
  8156.     DH = machine number for user
  8157. Return: CF set if invalid user number
  8158. Note:    only available to supervisors
  8159. SeeAlso: AH=3Dh
  8160. --------N-7F3D-------------------------------
  8161. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  8162.     AH = 3Dh
  8163. Note:    should be called whenever a program changes the terminal type or its
  8164.       parameters
  8165. SeeAlso: AH=3Bh
  8166. --------N-7F41-------------------------------
  8167. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  8168.     AH = 41h
  8169.     AL = user ID
  8170.     DS:DX -> ASCIZ filename
  8171. Return: AL = status (see #03966)
  8172. Note:    requests exclusive read/write access to file
  8173. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  8174.  
  8175. (Table 03966)
  8176. Values for Alloy function status:
  8177.  00h    successful
  8178.  01h    invalid function
  8179.  02h    already locked
  8180.  03h    unable to lock
  8181.  04h    lock table full or semaphore space exhausted
  8182. --------N-7F41-------------------------------
  8183. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  8184.     AH = 41h
  8185.     AL = user ID
  8186.     DS:DX -> ASCIZ semaphore name
  8187. Return: AL = status (see #03966)
  8188. SeeAlso: AH=00h,AH=42h"MW386"
  8189. --------s-7F4150BHC1-------------------------
  8190. INT 7F U - Voyetra - AAPISG - API
  8191.     AX = 4150h ('AP')
  8192.     BH = C1h
  8193.     BL = function (00h-13h)
  8194.         00h initialize (fails except first time called)
  8195.     ???
  8196. Return: AX = status???
  8197.         0000h successful
  8198.         0001h failed
  8199. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  8200. BUG:    the function range check uses JL instead of JB, so it will cause a
  8201.       crash if BL >= 80h on entry
  8202. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  8203. --------N-7F42-------------------------------
  8204. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  8205.     AH = 42h
  8206.     AL = user ID
  8207.     DS:DX -> ASCIZ filename
  8208. Return: AL = status (see #03966)
  8209. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  8210. --------N-7F42-------------------------------
  8211. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  8212.     AH = 42h
  8213.     AL = user ID
  8214.     DS:DX -> ASCIZ semaphore name
  8215. Return: AL = status
  8216.         00h successful
  8217.         01h invalid function
  8218.         03h unable to unlock semaphore
  8219. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  8220. --------V-7F4321-----------------------------
  8221. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  8222.     AX = 4321h
  8223. Return: AX = 0000h if installed
  8224. Note:    INT 7F is the default, but may be overridden
  8225. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  8226. --------s-7F4331BHC1-------------------------
  8227. INT 7F U - Voyetra - VAPISG - API
  8228.     AX = 4331h ('C1')
  8229.     BH = C1h
  8230.     BL = function (00h-7Ah)
  8231.     ???
  8232. Return: ???
  8233. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  8234.       sound board
  8235. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  8236. --------N-7F4E-------------------------------
  8237. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  8238.     AH = 4Eh
  8239.     AL = error mode flags
  8240.         bit 0: display critical disk errors
  8241.         bit 1: display sharing errors
  8242.     DX = 4E58h ("NX")
  8243. Return: AL = status
  8244.         00h successful
  8245. SeeAlso: AH=4Fh
  8246. --------N-7F4F-------------------------------
  8247. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  8248.     AH = 4Fh
  8249.     AL = FCB mode
  8250.         02h read/write compatibility
  8251.         42h read/write shared
  8252.     DX = 4E58h ("NX")
  8253. Return: AL = status
  8254.         00h successful
  8255. --------V-7F5555-----------------------------
  8256. INT 7F - TIGA Communications Driver v2.05 - ???
  8257.     AX = 5555h
  8258.     BX = ???
  8259. Return: ???
  8260. SeeAlso: AX=4321h
  8261. --------s-7F564DBHC1-------------------------
  8262. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  8263.     AX = 564Dh ('VM')
  8264.     BH = C1h
  8265.     BL = function (00h-1Bh)
  8266.         00h ???
  8267.         Return: CF clear
  8268.             AX = 0000h
  8269.     ???
  8270. Return: AX = FFFFh if invalid function
  8271.     ???
  8272. SeeAlso: AX=4331h,AX=5658h
  8273. --------s-7F5658BHC1-------------------------
  8274. INT 7F U - Voyetra - VAPISG - API
  8275.     AX = 5658h ('VX')
  8276.     BH = C1h
  8277.     BL = function (00h-1Bh)
  8278.     ???
  8279. Return: ???
  8280. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  8281.       sound board
  8282. SeeAlso: AX=4331h,AX=564Dh
  8283. --------N-7F81-------------------------------
  8284. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  8285.     AH = 81h
  8286.     AL = user ID
  8287.     DS:DX -> ASCIZ device name
  8288. SeeAlso: AH=82h
  8289. --------N-7F82-------------------------------
  8290. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  8291.     AH = 82h
  8292.     AL = user ID
  8293.     DS:DX -> ASCIZ device name
  8294. SeeAlso: AH=81h
  8295. --------N-7FA0-------------------------------
  8296. INT 7F - Alloy MW386 - GET USER NAME
  8297.     AH = A0h
  8298.     DL = user number (FFh = caller)
  8299.     DH = machine number for user
  8300.     ES:DI -> 17-byte buffer for ASCIZ user name
  8301. Return: CF set if invalid user number
  8302. SeeAlso: AH=03h,AH=A1h
  8303. --------N-7FA1-------------------------------
  8304. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  8305.     AH = A1h
  8306. Return: AL = process number
  8307.     DL = user number
  8308.     DH = machine number
  8309. SeeAlso: AH=03h,AH=A0h,AH=A2h
  8310. --------N-7FA2-------------------------------
  8311. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  8312.     AH = A2h
  8313.     DL = user number (FFh = caller)
  8314.     DH = machine number for user
  8315. Return: CF clear if successful
  8316.         AL = privilege level
  8317.         00h supervisor
  8318.         01h high
  8319.         02h medium
  8320.         03h low
  8321.     CF set if invalid user number
  8322. SeeAlso: AH=A1h,AH=A3h
  8323. --------N-7FA3-------------------------------
  8324. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  8325.     AH = A3h
  8326.     DL = user number
  8327.     DH = machine number for user
  8328. Return: CF clear if successful
  8329.         AL = login state
  8330.         00h never logged in
  8331.         01h currently logged out
  8332.         03h currently logged in
  8333.     CF set if invalid user number or user not active
  8334. SeeAlso: AH=A2h
  8335. --------N-7FA4-------------------------------
  8336. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  8337.     AH = A4h
  8338.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  8339. Return: AL = status
  8340.         00h     accepted
  8341.         else invalid password
  8342. --------N-7FA500-----------------------------
  8343. INT 7F - Alloy MW386 - GET USER STATUS
  8344.     AX = A500h
  8345.     DI = machine number and user number
  8346. Return: CF clear if successful
  8347.         BX = user flags
  8348.         bit 5: allow messages
  8349.         CL = scan code for task manager hotkey
  8350.         CH = scan code for spooler hotkey
  8351.         DL = scan code for task swapper hotkey
  8352.         DH = modifier key status
  8353.     CF set if invalid user number
  8354. SeeAlso: AX=A501h
  8355. Index:    hotkeys;Alloy MW386
  8356. --------N-7FA501-----------------------------
  8357. INT 7F - Alloy MW386 - SET USER STATUS
  8358.     AX = A501h
  8359.     BX = user flags (see AX=A500h)
  8360.     CL = scan code for task manager hotkey
  8361.     CH = scan code for spooler hotkey
  8362.     DL = scan code for task swapper hotkey
  8363.     DH = modifier key status
  8364.     DI = machine number and user number
  8365. Return: CF set if invalid user number
  8366. Note:    must have supervisor privilege to set another user's status
  8367. SeeAlso: AX=A500h
  8368. Index:    hotkeys;Alloy MW386
  8369. --------V-7FABCDBX0000-----------------------
  8370. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  8371.     AX = ABCDh
  8372.     BX = 0000h
  8373. Return: AX = total number of functions available
  8374.     ES:BX -> entry point array (see #03967)
  8375. SeeAlso: AX=0104h,AX=0105h
  8376.  
  8377. (Table 03967)
  8378. Values for 8516 Touch Screen function number:
  8379.  00h    check initialization and reset (see #03968)
  8380.  14h    set user-defined subroutine (see #03969)
  8381. Notes:    each driver function takes two stack parameters using Pascal calling
  8382.       conventions: address of parameter block and address of results buffer
  8383.     all pointers are FAR pointers
  8384.     on return, AX contains the status of the call:
  8385.         AX = 0000h successful
  8386.          0001h invalid input
  8387.          0002h interface error
  8388.          0003h unable to perform function
  8389.  
  8390. Format of 8516 Touch Screen Function 00h parameter block:
  8391. Offset    Size    Description    (Table 03968)
  8392.  00h    WORD    0000h (function number)
  8393. Note:    this function should be called before any other device driver functions
  8394.  
  8395. Format of 8516 Touch Screen Function 00h results buffer:
  8396. Offset    Size    Description    (Table 03969)
  8397.  00h    WORD    touch screen status
  8398.         0000h unavailable
  8399.         0001h uncalibrated
  8400.         FFFFh available
  8401.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  8402. Notes:    the following driver parameters will have been reset to zero:
  8403.       touchdown counter, liftoff counter, position at last touch, position
  8404.       at last lift, int call mask, select on count, select off count,
  8405.       pos select on count, pos select off count.
  8406.     the following driver parameters will have been reset as listed:
  8407.       mouse emulation mode: left on
  8408.       thresholds: 46 on screen, 96 push harder, 80 push release
  8409.       x, y hysteresis: 400
  8410.       data repeat rate: 40/sec
  8411.       select mechanism: push-harder - first-touch
  8412.       coordinate origin: upper left corner
  8413.       filter frequency: medium
  8414.       data block mask: all enabled
  8415.       click lock: on
  8416. --------N-7FB0-------------------------------
  8417. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  8418.     AH = B0h
  8419.     AL = user number
  8420.     DS = code segment
  8421. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  8422.       or INT 7F locking functions
  8423. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  8424. --------N-7FB1--SF00-------------------------
  8425. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  8426.     AH = B1h subfn 00h
  8427.     AL = (bits 7-5) 000
  8428.          (bits 4-0) user ID
  8429. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  8430.       INT 7F locking functions
  8431. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  8432. --------N-7FB2--SF01-------------------------
  8433. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  8434.     AH = B2h subfn 01h
  8435.     AL = (bits 7-5) 001
  8436.          (bits 4-0) user ID
  8437. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  8438. --------N-7FB3--SF02-------------------------
  8439. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  8440.     AH = B3h subfn 02h
  8441.     AL = (bits 7-5) 010
  8442.          (bits 4-0) user ID
  8443. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  8444. --------N-7FB4-------------------------------
  8445. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  8446.     AH = B4h
  8447.     AL = user ID
  8448. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  8449. --------N-7FC3-------------------------------
  8450. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  8451.     AH = C3h
  8452.     AL = byte to write
  8453. Return: CF clear if successful
  8454.     CF set on error
  8455. SeeAlso: AH=C6h
  8456. --------N-7FC5-------------------------------
  8457. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  8458.     AH = C5h
  8459.     AL = new console mode
  8460.         00h keyboard indirect
  8461.         01h keyboard direct
  8462.         02h data handshake enforced
  8463.         03h no data handshake
  8464. Return: CF clear if successful
  8465.         AL = prior console mode
  8466.     CF set on error (caller is not remote user)
  8467. Note:    modes 2 and 3 may be used for input through the console port; no video
  8468.       output should be performed in these modes
  8469. --------N-7FC6-------------------------------
  8470. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  8471.     AH = C6h
  8472.     AL = byte to write
  8473. Return: CF clear if successful
  8474.     CF set on error (caller is not remote user)
  8475. Note:    any terminal driver data translation will be bypassed
  8476. SeeAlso: AH=C3h,AH=C7h
  8477. --------N-7FC7-------------------------------
  8478. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  8479.     AH = C7h
  8480. Return: CF clear if successful
  8481.         AL = byte read
  8482.     CF set on error (no data available or caller is not remote user)
  8483. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  8484. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  8485. --------N-7FC8-------------------------------
  8486. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  8487.     AH = C8h
  8488.     AL = maximum bytes to read
  8489.     ES:DI -> buffer for console data
  8490. Return: CF clear if successful
  8491.         CX = number of bytes read
  8492.     CF set on error (caller is not remote user)
  8493. SeeAlso: AH=C7h
  8494. --------N-7FCF-------------------------------
  8495. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  8496.     AH = CFh
  8497.     DS:DX -> ASCIZ string containing user number to be reset
  8498. SeeAlso: AH=D6h
  8499. --------N-7FD6-------------------------------
  8500. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  8501.     AH = D6h
  8502.     DS:DX -> reset packet (see #03970)
  8503. Return: never if successful
  8504. Note:    all users will be shut down immediately if successful
  8505. SeeAlso: AH=CFh
  8506.  
  8507. Format of Alloy MW386 reset packet:
  8508. Offset    Size    Description    (Table 03970)
  8509.  00h    DWORD    reset code (60606060h)
  8510.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  8511. --------N-7FD7-------------------------------
  8512. INT 7F - Alloy MW386 - POST EVENT
  8513.     AH = D7h
  8514.     AL = user number (if local event)
  8515.     DX = event number
  8516. --------N-7FD8-------------------------------
  8517. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  8518.     AH = D8h
  8519. Return: CF set on error
  8520. Note:    forces all disk buffers to be written out immediately
  8521. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  8522. --------N-7FDB-------------------------------
  8523. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  8524.     AH = DBh
  8525. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  8526. --------N-7FE0-------------------------------
  8527. INT 7F - Alloy MW386 - CREATE DOS TASK
  8528.     AH = E0h
  8529.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8530.     DS:DX -> ASCIZ task name (max 16 bytes)
  8531. Return: CF clear if successful
  8532.         AL = task create ID
  8533.     CF set on error
  8534. Note:    only foreground DOS tasks can use this function
  8535. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  8536. --------N-7FE1-------------------------------
  8537. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  8538.     AH = E1h
  8539.     AL = create ID (from AH=E0h)
  8540. Return: AL = DOS process number
  8541.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8542. Note:    this function should not be called immediately after creating a new
  8543.       DOS task, since the new task is being initialized by a concurrent
  8544.       process
  8545. SeeAlso: AH=E0h,AH=E2h
  8546. --------N-7FE2-------------------------------
  8547. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  8548.     AH = E2h
  8549.     AL = DOS process number (from AH=E1h)
  8550. Return: CF set on error (invalid process number or caller not foreground task)
  8551. Notes:    specified task becomes the foreground task and current task is placed
  8552.       in the background
  8553.     may only be called by a foreground task
  8554. SeeAlso: AH=E0h,AH=E1h
  8555. --------N-7FE3-------------------------------
  8556. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  8557.     AH = E3h
  8558.     DS:DX -> ASCIZ task name
  8559. ---v1.x---
  8560.     AL = user number
  8561. ---v2+---
  8562.     BH = user number
  8563.     BL = task number
  8564. Return: CF clear if successful
  8565.     CF set on error (invalid process number)
  8566. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  8567. --------N-7FE4-------------------------------
  8568. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  8569.     AH = E4h
  8570.     ES:DI -> buffer for task name
  8571. ---v1.x---
  8572.     AL = user number
  8573. ---v2+---
  8574.     BH = user number
  8575.     BL = task number
  8576. Return: CF clear if successful
  8577.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8578.         DX = task flags
  8579.         bit 7: MS-DOS process
  8580.         ES:DI buffer filled
  8581.     CF set on error (invalid process number)
  8582. SeeAlso: AH=E3h,AH=E5h
  8583. --------N-7FE5-------------------------------
  8584. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  8585.     AH = E5h
  8586.     DS:DX -> ASCIZ task name
  8587.     BH = user number
  8588. Return: CF clear if successful
  8589.         AL = DOS process number
  8590.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8591.     CF set on error (no match for name)
  8592. SeeAlso: AH=E3h,AH=E4h
  8593. --------N-7FE6-------------------------------
  8594. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  8595.     AH = E6h
  8596. Return: AX = number of processes available to current user
  8597. SeeAlso: AH=E0h
  8598. --------N-7FE7-------------------------------
  8599. INT 7F - Alloy MW386 - REMOVE DOS TASK
  8600.     AH = E7h
  8601.     AL = DOS process number
  8602. Return: CF clear if successful
  8603.     CF set on error (invalid process number or first process)
  8604. Note:    can only be called by a foreground task
  8605. SeeAlso: AH=E0h
  8606. --------N-7FE8-------------------------------
  8607. INT 7F - Alloy MW386 - DOS TASK DELAY
  8608.     AH = E8h
  8609.     CX = delay time in milliseconds
  8610. Note:    a delay of 0 may be used to surrender the current time slice
  8611. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  8612. SeeAlso: INT 2F/AX=1680h
  8613. --------N-7FF0-------------------------------
  8614. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  8615.     AH = F0h
  8616.     AL = group number
  8617.     DS:DX -> ASCIZ directory name
  8618. Return: CF clear if successful
  8619.         AX = status
  8620.         0002h directory not found
  8621.         0003h directory not found
  8622.         0005h directory in use, cannot be restricted
  8623.         02xxh restricted to group xxh
  8624.     CF set on error
  8625. Note:    the restriction on the directory may be removed by calling this
  8626.       function with group 0, then using AH=F1h to assign the directory to
  8627.       group 0
  8628. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  8629. --------N-7FF1-------------------------------
  8630. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  8631.     AH = F1h
  8632.     AL = group number
  8633.     DS:DX -> ASCIZ directory name
  8634. Notes:    performs permanent assignment to a group; no immediate action is taken
  8635.       unless the directory has been restricted with AH=F0h
  8636.     may be used to restrict a nonexistent directory
  8637. SeeAlso: AH=F0h
  8638. --------N-7FF2-------------------------------
  8639. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  8640.     AH = F2h
  8641.     CX = entry number
  8642.     ES:DI -> 64-byte buffer
  8643. Return: CF clear if successful
  8644.         buffer filled with 63-byte directory info and 1-byte group number
  8645.     CF set on error (invalid entry)
  8646. SeeAlso: AH=F0h,AH=F3h
  8647. --------N-7FF3-------------------------------
  8648. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  8649.     AH = F3h
  8650.     AL = group number
  8651.     CX = entry number
  8652.     ES:DI -> 64-byte buffer
  8653. Return: CF clear if successful
  8654.         CX = next entry number
  8655.         buffer filled with 63-byte directory info and 1-byte group number
  8656.     CF set on error (no more matching entries)
  8657. Note:    like AH=F2h, but only returns directories belonging to the specified
  8658.       group
  8659. SeeAlso: AH=F2h
  8660. --------N-7FF8-------------------------------
  8661. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  8662.     AH = F8h
  8663.     AL = group number
  8664.     DL = user number
  8665.     DH = machine number (currently 00h)
  8666. Return: CF clear if successful
  8667.     CF set on error (user already in maximum number of groups)
  8668. Note:    each user is allowed eight group assignments
  8669. SeeAlso: AH=F9h,AH=FAh
  8670. --------N-7FF9-------------------------------
  8671. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  8672.     AH = F9h
  8673.     AL = group number
  8674.     DL = user number
  8675.     DH = machine number (currently 00h)
  8676. Return: CF clear if successful
  8677.     CF set if failed
  8678. SeeAlso: AH=F8h,AH=FAh
  8679. --------N-7FFA-------------------------------
  8680. INT 7F - Alloy MW386 - GET USER GROUP LIST
  8681.     AH = FAh
  8682.     DL = user number
  8683.     DH = machine number (currently 00h)
  8684.     ES:DI -> 16-byte buffer for group list
  8685. Return: CX = number of groups
  8686.     ES:DI buffer filled with group numbers
  8687. SeeAlso: AH=F8h,AH=F9h
  8688. --------N-7FFB-------------------------------
  8689. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  8690.     AH = FBh
  8691.     CL = group number
  8692.     ES:DI -> ASCIZ group name (max 17 bytes)
  8693. SeeAlso: AH=FCh
  8694. --------N-7FFC-------------------------------
  8695. INT 7F - Alloy MW386 - GET GROUP NAME
  8696.     AH = FCh
  8697.     CL = group number
  8698.     ES:DI -> 17-byte buffer for ASCIZ name
  8699. Return: ES:DI buffer filled
  8700. Note:    if the group has not been named, "(unnamed)" is returned
  8701. SeeAlso: AH=FBh
  8702. ----------80---------------------------------
  8703. INT 80 - Q-PRO4 - ???
  8704. --------r-80---------------------------------
  8705. INT 80 - reserved for BASIC
  8706. Note:    this vector and INT 81 through INT ED are modified but not restored by
  8707.       Direct Access v4.0, and may be left dangling by other programs
  8708.       written with the same version of compiled BASIC
  8709. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  8710. --------E-80---------------------------------
  8711. INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
  8712. Note:    the extender relocates INT 05 to here by default, but can be told to
  8713.       leave INT 05 alone with the commandline (or DOSX= environment
  8714.       variable) flag -PRIVEC 5
  8715. SeeAlso: INT 05"PRINT SCREEN"
  8716. --------d-80---------------------------------
  8717. INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  8718. Note:    the factory-default location for the eight bytes of scratchpad RAM
  8719.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  8720.       vectors 80h and 81h
  8721. SeeAlso: INT 81"BusLogic"
  8722. --------b-80---------------------------------
  8723. INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION
  8724.     AH = function
  8725.         00h install and initialize BIOS subsystem
  8726.         AL = ??? (00h,01h,03h)
  8727.         CX:BX = subsystem ID (see #03971)
  8728.         ESI = address from which to load, or 00000000h for default for
  8729.             subsystem
  8730.         EDI = physical address at which to install, or 0 for default
  8731.         Note:    if CX=0000h on entry, this call is applied to all
  8732.               subsystems whose ID has low word BX
  8733.         01h get BIOS subsystem information
  8734.         CX:BX = subsystem ID (see #03971)
  8735.         Return: AL = ???
  8736.             AH = ???
  8737.             EDX = uncompressed size of subsystem in bytes
  8738.             SI = offset within subsystem of initialization
  8739.                 routine, or FFFFh if none
  8740.             EDI = physical address of default location or 0
  8741.         02h get matching subsystem identifier
  8742.         AL = index into subsystem list (return ALth occurrence
  8743.               matching BX)
  8744.         BX = low word of subsystem identifier
  8745.             (0001h,0002h,0004h,0005h,000Bh,FFFFh)
  8746.         Return: CF clear if successful
  8747.                 CX = high word of ALth matching subsystem
  8748.             CF set on error
  8749.         Note:    the system is halted if AL=00h on entry
  8750.         03h set up "big real" mode (4G segment limits)
  8751.         04h turn off "big real" mode (restore 64K segment limits)
  8752.         05h remove BIOS subsystem
  8753.         CX:BX = subsystem ID to leave out
  8754.         Note:    the system is halted if an invalid (not installed)
  8755.               subsystem ID is specified
  8756.         06h get installed subsystem info
  8757.         CX:BX = subsystem ID (see #03971)
  8758.         Return:    CF clear
  8759.             EDX = length of ???
  8760.             EDI = linear address of start of ???
  8761.         Note:    the system is halted if an invalid (not installed)
  8762.               subsystem ID is specified
  8763. Return: CF clear if successful
  8764.     CF set on non-fatal error
  8765. Note:    this interrupt vector is cleared to 0000h:0000h near the end of the
  8766.       BIOS startup sequence
  8767.  
  8768. (Table 03971)
  8769. Values for AMI BIOS subsystem ID:
  8770.  00010001h    ROM BIOS @F000-FFFF
  8771.  00010002h    setup??? (loaded @6000-68FF)
  8772.  00010005h    APM code
  8773.  0001000Bh    language-specific error message set (English)
  8774.  00020002h    PnP/PCI ACFG code (loaded @F000-F1FF)
  8775.  0001FFFFh
  8776.  0002FFFFh    recovery code
  8777.  00030004h
  8778.  0003FFFFh    BIOS decompression code
  8779.  0004000Bh
  8780.  00060004h
  8781.  0100FFFFh    ACFG data
  8782.  10000000h    ROM @C000 (64K)
  8783.  10000001h    HMA (48K)
  8784.  10000002h    RAM @7A00 (24K)
  8785.  10000003h    RAM @8000-BFFF
  8786.  10000004h
  8787.  10000005h    real-mode address space (0-1M)
  8788.  1000000Bh    installed language-specific message set???
  8789. --------s-80----BL00-------------------------
  8790. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  8791.     BL = 00h
  8792.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  8793. Return: AX = initialization result (see #03972)
  8794. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  8795.       which provides access to multiple drivers for the SoundBlaster
  8796.       board through a single interface
  8797. Range:    INT 80h to INT BFh, selected automatically
  8798. Note:    the SBSIM installation check consists of testing for the signature
  8799.       "SBSIM" at offset 103h in the interrupt handler's segment.
  8800. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  8801. SeeAlso: INT 80/BX=0000h"SBSIM"
  8802.  
  8803. (Table 03972)
  8804. Values for SBSIM error code:
  8805.  01h    busy--currently in use
  8806.  02h    bad driver specified
  8807.  03h    invalid function
  8808.  04h    voice process already active
  8809.  05h    couldn't start CT-VOICE
  8810.  06h    couldn't start CTVDSK
  8811.  07h    invalid SBSIM handle
  8812.  08h    buffer not initialized yet
  8813.  09h    bad filename
  8814.  0Ah    bad file handle
  8815.  0Bh    driver not started yet
  8816.  0Ch    XMS driver not installed
  8817.  0Dh    no free SBSIM handles
  8818.  0Eh    bad file type
  8819.  0Fh    couldn't free XMS block
  8820.  10h    invalid source selected
  8821.  11h    get pan position failed
  8822.  12h    set pan position failed
  8823.  13h    set volume failed
  8824.  14h    couldn't start fade/pan
  8825.  15h    couldn't stop fade/pan
  8826.  16h    couldn't pause fade/pan
  8827.  17h    not a fade/pan operation
  8828.  18h    bad mode for fade/pan
  8829.  19h    couldn't start fade/pan
  8830.  1Ah    source not fading/panning
  8831.  1Bh    FM or MIDI already playing
  8832.  1Ch    bad MIDI mapper format
  8833. --------s-80----BL01-------------------------
  8834. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  8835.     BL = 01h
  8836.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  8837. Return: AX = result (see #03972)
  8838. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  8839. --------s-80----BL02-------------------------
  8840. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  8841.     BL = 02h
  8842.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  8843. Return: nothing
  8844. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  8845. --------s-80----BL03-------------------------
  8846. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  8847.     BL = 03h
  8848.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  8849. Return: nothing
  8850. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  8851. SeeAlso: INT 80/BL=05h
  8852. --------s-80----BL04-------------------------
  8853. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  8854.     BL = 04h
  8855.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  8856. Return: nothing
  8857. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  8858. --------s-80----BL05-------------------------
  8859. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  8860.     BL = 05h
  8861.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  8862. Return: AX = status
  8863. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  8864. --------s-80----BX0000-----------------------
  8865. INT 80 - SoundBlaster SBFM driver - GET VERSION
  8866.     BX = 0000h
  8867. Return: ???
  8868. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  8869. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000h
  8870. --------s-80----BX0000-----------------------
  8871. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  8872.     BX = 0000h
  8873. Return: AX = version (AH = major, AL = minor)
  8874. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  8875.       which provides access to multiple drivers for the SoundBlaster
  8876.       board through a single interface
  8877. Range:    INT 80h to INT BFh, selected automatically
  8878. Note:    the SBSIM installation check consists of testing for the signature
  8879.       "SBSIM" at offset 103h in the interrupt handler's segment.
  8880. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
  8881. SeeAlso: INT 80/BL=00h"SBSIM"
  8882. Index:    installation check;SBSIM|installation check;SoundBlaster
  8883. --------s-80----BX0001-----------------------
  8884. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  8885.     BX = 0001h
  8886.     DX:AX -> music status byte
  8887. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  8888. --------s-80----BX0001-----------------------
  8889. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  8890.     BX = 0001h
  8891. Return: AX = bit flags for loaded drivers (see #03973)
  8892. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  8893.  
  8894. Bitfields for SBSIM loaded drivers:
  8895. Bit(s)    Description    (Table 03973)
  8896.  0    FM
  8897.  1    double disk-buffered voice driver (DDBV)
  8898.  2    memory voice driver
  8899.  3    auxiliary driver (mixer)
  8900.  4    MIDI
  8901. --------s-80----BX0002-----------------------
  8902. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  8903.     BX = 0002h
  8904.     CX = number of instruments
  8905.     DX:AX -> instrument table
  8906. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  8907. --------s-80----BX0002-----------------------
  8908. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  8909.     BX = 0002h
  8910.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  8911. Return: CF clear if successful
  8912.         DX:AX -> entry point
  8913.     CF set on error
  8914. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  8915. --------s-80----BX0003-----------------------
  8916. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  8917.     BX = 0003h
  8918.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  8919.         FFFFh to restore to 18.2 Hz
  8920. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  8921. --------s-80----BX0004-----------------------
  8922. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  8923.     BX = 0004h
  8924.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  8925. Note:    default frequency is 96 Hz
  8926. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  8927. --------s-80----BX0005-----------------------
  8928. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  8929.     BX = 0005h
  8930.     AX = semi-tone offset
  8931. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  8932. --------s-80----BX0005-----------------------
  8933. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  8934.     BX = 0005h
  8935.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  8936. Return: CF clear if successful
  8937.         DX:AX -> buffer
  8938.         CX = buffer size in K
  8939.     CF set on error
  8940. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  8941.       which provides access to multiple drivers for the SoundBlaster
  8942.       board through a single interface
  8943. Range:    INT 80h to INT BFh, selected automatically
  8944. Note:    the SBSIM installation check consists of testing for the signature
  8945.       "SBSIM" at offset 103h in the interrupt handler's segment.
  8946. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  8947. --------s-80----BX0006-----------------------
  8948. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  8949.     BX = 0006h
  8950.     DX:AX -> music block
  8951. Return: AX = status
  8952.         0000h successful
  8953.         0001h music already active
  8954. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  8955. --------s-80----BX0007-----------------------
  8956. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  8957.     BX = 0007h
  8958. Return: AX = status
  8959.         0000h successful
  8960.         0001h music not active
  8961. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  8962. --------s-80----BX0008-----------------------
  8963. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  8964.     BX = 0008h
  8965. Return: AX = status
  8966.         0000h successful
  8967.         0001h music is active
  8968. SeeAlso: BX=0000h"SBFM"
  8969. --------s-80----BX0009-----------------------
  8970. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  8971.     BX = 0009h
  8972. Return: AX = status
  8973.         0000h successful
  8974.         0001h no music active
  8975. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  8976. --------s-80----BX000A-----------------------
  8977. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  8978.     BX = 000Ah
  8979. Return: AX = status
  8980.         0000h successful
  8981.         0001h no music paused
  8982. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  8983. --------s-80----BX000B-----------------------
  8984. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  8985.     BX = 000Bh
  8986.     DX:AX -> trap routine
  8987. SeeAlso: BX=0000h"SBFM"
  8988. --------s-80----BX0400-----------------------
  8989. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  8990.     BX = 0400h
  8991.     AX = sound source (see #03974)
  8992. Return: CF clear if successful
  8993.         AX = volume
  8994.     CF set on error
  8995.         AX = error code (see #03972 at INT 80/BL=00h)
  8996. SeeAlso: BX=0401h"SBSIM"
  8997.  
  8998. (Table 03974)
  8999. Values for SBSIM sound source:
  9000.  00h    master volume
  9001.  01h    voice
  9002.  02h    FM
  9003.  03h    CD
  9004.  04h    line in
  9005.  05h    microphone
  9006. --------s-80----BX0401-----------------------
  9007. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  9008.     BX = 0401h
  9009.     AX = sound source (see #03974)
  9010.     DX = new volume
  9011. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  9012. SeeAlso: BX=0400h"SBSIM"
  9013. --------N-8001-------------------------------
  9014. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  9015.     AH = 01h
  9016. Return: AX = 0000h
  9017.     CX = FFFFh
  9018.     DX = FFFFh
  9019. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  9020.     all buffer pointers are reset back to 0
  9021. --------N-8002-------------------------------
  9022. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  9023.     AH = 02h
  9024.     BX = extra bytes to allocate per packet
  9025. Return: AX = segment address of 10K buffer (for receives???)
  9026.     BX = segment address of 2K buffer (for sends???)
  9027. SeeAlso: AH=05h
  9028. --------N-8003-------------------------------
  9029. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  9030.     AH = 03h
  9031. Return: CX:DX -> receive call address
  9032. Note:    the returned address can be used in the packet driver calls since it
  9033.       will be a valid address in all DOS boxes
  9034. SeeAlso: AH=06h
  9035. --------N-8004-------------------------------
  9036. INT 80 - QPC Software PKTINT.COM - ENABLE???
  9037.     AH = 04h
  9038.     BX = ???
  9039. Return: ???
  9040. SeeAlso: AH=01h
  9041. --------N-8005-------------------------------
  9042. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  9043.     AH = 05h
  9044. Return: AX = amount of buffer currently in use
  9045.     BX = current offset in buffer
  9046.     CX = number of times receive has been called
  9047. SeeAlso: AH=02h
  9048. --------N-8006-------------------------------
  9049. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  9050.     AH = 06h
  9051. Return: BX = next packet offset
  9052.     CX = number of bytes still buffered
  9053.     DX = size of packet released back into buffer pool
  9054. SeeAlso: AH=03h
  9055. --------r-81---------------------------------
  9056. INT 81 - reserved for BASIC
  9057. Note:    this vector is modified but not restored by Direct Access v4.0, and
  9058.       may be left dangling by other programs written with the same version
  9059.       of compiled BASIC
  9060. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  9061. --------N-81---------------------------------
  9062. INT 81 - IBM TOKEN RING ADAPTER - ???
  9063. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  9064. --------d-81---------------------------------
  9065. INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  9066. Note:    the factory-default location for the eight bytes of scratchpad RAM
  9067.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  9068.       vectors 80h and 81h
  9069. SeeAlso: INT 80"BusLogic"
  9070. --------b-81---------------------------------
  9071. INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION
  9072. Notes:    used by WinBIOS with core version of July 1994 or later
  9073.     QEMM 7.5 began using this interrupt internally after the QPAT3
  9074.       maintenance release when searching for "ROM holes", causing a
  9075.       lengthy delay during bootup.    Adding the QEMM parameter RH:N will
  9076.       avoid the QEMM call to INT 81 and speed up the boot process
  9077. --------O-81---------------------------------
  9078. INT 81 - Paragon Technology PTS/DOS 6.5x, S/DOS 1.0 - API
  9079. --------s-810200---------------------------
  9080. INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
  9081.     AX = 0200h
  9082.     BX = PSP segment
  9083.     SI = ??? (data area)
  9084. Return: AX = status (see #03975)
  9085.     BL = emulation state
  9086.         bit 1   Emulation is on
  9087.         bit 2   Emulation is off
  9088. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  9089.       emulator for the Gravis UltraSound
  9090. Range:    INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an
  9091.       interrupt with vector 0000h:0000h
  9092. SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  9093.  
  9094. (Table 03975)
  9095. Values for MegaEm status:
  9096.  0000h    successful
  9097.  0001h    invalid command line optie
  9098.  0002h    display options
  9099.  0003h    ???
  9100.  0004h    invalid number of voices specified
  9101.  0005h    could not load enough patches to provide acceptable emulation
  9102.  0006h    to many warnings on patch loading
  9103.  0007h    ??? (not used anymore)
  9104.  0008h    /CO and SCSI don't work together
  9105.  0009h    invalid music volume
  9106.  000Ah    invalid master volume
  9107.  000Bh    /SC switch is no longer valid
  9108.  0100h    ??? (some error on patch loading)
  9109. --------s-810202---------------------------
  9110. INT 81 - Gravis UltraSound - MegaEm - ???
  9111.     AX = 0202h
  9112. Return: AX = ???
  9113. SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  9114. --------s-810300---------------------------
  9115. INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
  9116.     AX = 0300h
  9117. Return: AX = ???
  9118. SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  9119. --------s-810400---------------------------
  9120. INT 81 - Gravis UltraSound - MegaEm - ???
  9121.     AX = 0400h
  9122.     BX = ??? (segment)
  9123. Return: AX = ???
  9124.     BX = ???
  9125. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  9126.       emulator for the Gravis UltraSound
  9127. SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h
  9128. --------s-812010------------------------
  9129. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
  9130.     AX = 2010h
  9131.     ???
  9132. Return: ???
  9133. Note:    MegaEm calls this function from its INT 78 handler, and then
  9134.       immediately returns (via RETF in v3.10, thus leaving the flags on
  9135.       the stack); this permits it to operate while hooking only one
  9136.       interrupt through the memory manager in protected mode
  9137. SeeAlso: AX=2011h,AX=2012h
  9138. --------s-812011------------------------
  9139. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
  9140.     AX = 2011h
  9141.     ???
  9142. Return: ???
  9143. Note:    MegaEm calls this function from its NMI (INT 02) handler, and then
  9144.       immediately returns; this permits it to operate while hooking only
  9145.       one interrupt through the memory manager in protected mode
  9146. SeeAlso: AX=2010h,AX=2012h
  9147. --------s-812012------------------------
  9148. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
  9149.     AX = 2012h
  9150.     ???
  9151. Return: ???
  9152. Note:    MegaEm calls this function from its GUS IRQ handler, and then
  9153.       immediately returns; this permits it to operate while hooking only
  9154.       one interrupt through the memory manager in protected mode
  9155. SeeAlso: AX=2010h,AX=2011h
  9156. --------s-812015------------------------
  9157. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  9158.     AX = 2015h
  9159.     ???
  9160. Return: ???
  9161. --------r-82---------------------------------
  9162. INT 82 - reserved for BASIC
  9163. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  9164. --------N-82---------------------------------
  9165. INT 82 - IBM TOKEN RING ADAPTER - ???
  9166.     AH = function
  9167.         00h display message???
  9168.         DS:BX -> string
  9169.     ???
  9170. Return: ???
  9171. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  9172. --------r-83---------------------------------
  9173. INT 83 - reserved for BASIC
  9174. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  9175. --------s-8300-------------------------------
  9176. INT 83 - JM Pro Tracker v5.0 - ???
  9177.     AH = 00h
  9178.     ???
  9179. Return: CF clear (successful)
  9180.     AX = ??? (0302h)
  9181. Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
  9182.       player by Josha Munnik
  9183.  
  9184. (Table 03976)
  9185. Values for JM Pro Tracker error code:
  9186.  000Ah    ???
  9187.  000Bh    ???
  9188.  0014h    ???
  9189.  001Eh    some required parameters have not yet been set
  9190.  001Fh    already playing???
  9191.  FExxh    busy (API call already in progress)
  9192.  FFxxh    invalid function number
  9193. --------s-8301-------------------------------
  9194. INT 83 - JM Pro Tracker v5.0 - ???
  9195.     AH = 01h
  9196.     DX = ??? or FFFFh
  9197.     ???
  9198. Return: CF clear if successful
  9199.     CF set on error
  9200.         AX = error code (see #03976)
  9201. --------s-8302-------------------------------
  9202. INT 83 - JM Pro Tracker v5.0 - ???
  9203.     AH = 02h
  9204.     BX = ???
  9205.     ???
  9206. Return: CF clear if successful
  9207.         AX = ???
  9208.         BX = ???
  9209.         CX = ???
  9210.         DX = ???
  9211.         SI = ???
  9212.     CF set on error
  9213.         AX = error code (000Ah,000Bh,other) (see #03976)
  9214. --------s-8303-------------------------------
  9215. INT 83 - JM Pro Tracker v5.0 - ???
  9216.     AH = 03h
  9217.     BX = ??? (only low four bits, must be nonzero)
  9218.     CX = ???
  9219.     ???
  9220. Return: CF clear if successful
  9221.     CF set on error
  9222.         AX = error code (0014h) (see #03976)
  9223. --------s-8304-------------------------------
  9224. INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
  9225.     AH = 04h
  9226.     CX = number of bytes in suggested buffer
  9227.     ES:DI -> suggested buffer for DMA transfers???
  9228. Return: CF clear if successful
  9229.         ES:AX -> actual buffer (filled with bytes of 80h)
  9230.         CX = actual length (multiple of 4)
  9231.     CF set on error
  9232.         AX = error code (see #03976)
  9233. Note:    the buffer must not cross a 64K DMA page boundary
  9234. --------s-8305-------------------------------
  9235. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  9236.     AH = 05h
  9237.     CX = length of buffer
  9238.     ES:DI -> buffer for/containing ???
  9239. Return: CF clear (successful)
  9240. SeeAlso: AH=06h,AH=07h,AH=18h
  9241. --------s-8306-------------------------------
  9242. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  9243.     AH = 06h
  9244.     CX = length of buffer
  9245.     ES:DI -> buffer for/containing ???
  9246. Return: CF clear (successful)
  9247. SeeAlso: AH=05h,AH=07h,AH=18h
  9248. --------s-8307-------------------------------
  9249. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  9250.     AH = 07h
  9251.     BX = ???
  9252.     CX = length of buffer
  9253.     ES:DI -> buffer for/containing ???
  9254. Return: CF clear (successful)
  9255. SeeAlso: AH=05h,AH=06h,AH=18h
  9256. --------s-8308-------------------------------
  9257. INT 83 - JM Pro Tracker v5.0 - START PLAYING???
  9258.     AH = 08h
  9259.     ???
  9260. Return: CF clear if successful
  9261.        ???
  9262.     CF set on error
  9263.         AX = error code (001Eh,001Fh) (see #03976)
  9264. SeeAlso: AH=09h,AH=0Ah
  9265. --------s-8309-------------------------------
  9266. INT 83 - JM Pro Tracker v5.0 - PAUSE???
  9267.     AH = 09h
  9268.     ???
  9269. Return: CF clear if successful
  9270.     CF set on error
  9271.         AX = error code (see #03976)
  9272. SeeAlso: AH=08h,AH=0Ah
  9273. --------s-830A-------------------------------
  9274. INT 83 - JM Pro Tracker v5.0 - RESUME???
  9275.     AH = 0Ah
  9276.     ???
  9277. Return: CF clear if successful
  9278.     CF set on error
  9279.         AX = error code (001Fh) (see #03976)
  9280. SeeAlso: AH=08h,AH=09h
  9281. --------s-830B-------------------------------
  9282. INT 83 - JM Pro Tracker v5.0 - ???
  9283.     AH = 0Bh
  9284.     BX = ???
  9285.     ???
  9286. Return: CF clear if successful
  9287.     CF set on error
  9288. --------s-830C-------------------------------
  9289. INT 83 - JM Pro Tracker v5.0 - ???
  9290.     AH = 0Ch
  9291.     DX bit 5 = ???
  9292.     ???
  9293. Return: CF clear if successful
  9294.         BX = ??? (FFFFh)
  9295.         CX = ??? (0000h)
  9296.         DX = ???
  9297.     CF set on error
  9298.         AX = error code (see #03976)
  9299. --------s-830D-------------------------------
  9300. INT 83 - JM Pro Tracker v5.0 - ???
  9301.     AH = 0Dh
  9302.     BX = ???
  9303.     ???
  9304. Return: CF clear (successful)
  9305. --------s-830E-------------------------------
  9306. INT 83 - JM Pro Tracker v5.0 - ???
  9307.     AH = 0Eh
  9308.     BX = ??? (ignored if ES:DI = 0000h:0000h)
  9309.     ES:DI -> ??? or 0000h:0000h
  9310. Return: CF clear (successful)
  9311. --------s-830F-------------------------------
  9312. INT 83 - JM Pro Tracker v5.0 - ???
  9313.     AH = 0Fh
  9314.     ???
  9315. Return: CF clear if successful
  9316.         AX = ???
  9317.     CF set on error
  9318.         AX = error code (see #03976)
  9319. --------s-8310-------------------------------
  9320. INT 83 - JM Pro Tracker v5.0 - ???
  9321.     AH = 10h
  9322.     BL = subfunction???
  9323.     CX = ???
  9324.     DX = ???
  9325.     ???
  9326. Return: CF clear if successful
  9327.         CX = DX = ???
  9328.     CF set on error
  9329.         AX = error code (see #03976)
  9330. SeeAlso: AH=18h
  9331. --------s-8311-------------------------------
  9332. INT 83 - JM Pro Tracker v5.0 - ???
  9333.     AH = 11h
  9334.     BL = ???
  9335.     CX = ???
  9336. Return: CF clear (successful)
  9337. --------s-8312-------------------------------
  9338. INT 83 - JM Pro Tracker v5.0 - CLEAR ???
  9339.     AH = 12h
  9340. Return: nothing
  9341. --------s-8313-------------------------------
  9342. INT 83 - JM Pro Tracker v5.0 - ???
  9343.     AH = 13h
  9344.     BX = ???
  9345. Return: CF clear (successful)
  9346. --------s-8314-------------------------------
  9347. INT 83 - JM Pro Tracker v5.0 - ???
  9348.     AH = 14h
  9349.     ???
  9350. Return: CF clear (successful)
  9351.     BX = ???
  9352. --------s-8315-------------------------------
  9353. INT 83 - JM Pro Tracker v5.0 - GET ???
  9354.     AH = 15h
  9355.     BX = what to get (zero/nonzero)
  9356. Return: CF clear if successful
  9357.         BX = ???
  9358.         DX = ???
  9359.     CF set on error
  9360.         AX = error code (see #03976)
  9361. --------s-8316-------------------------------
  9362. INT 83 - JM Pro Tracker v5.0 - ???
  9363.     AH = 16h
  9364.     AL = subfunction
  9365.         00h ???
  9366.         Return: BX = ???
  9367.             CX = ???
  9368.             DX = ???
  9369.             ES:DI -> ???
  9370.             CF indicates ???
  9371.         01h ???
  9372.         Return: BX = ???
  9373.             CX = ???
  9374.             DX = ???
  9375. Return: CF clear if successful
  9376.     CF set on error
  9377.         AX = error code (FFxxh) (see #03976)
  9378. --------s-8317-------------------------------
  9379. INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
  9380.     AH = 17h
  9381. Return: CF clear if successful
  9382.     CF set on error (hooked by another program)
  9383. --------s-8318-------------------------------
  9384. INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
  9385.     AH = 18h
  9386.     ES:DI -> buffer-pointer structure (see #03977)
  9387. Return: nothing
  9388. SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h
  9389.  
  9390. Format of JM Pro Tracker buffer-pointer structure:
  9391. Offset    Size    Description    (Table 03977)
  9392.  00h    WORD    length of ??? buffer (see AH=05h)
  9393.  02h    DWORD    -> ??? buffer (see AH=05h)
  9394.  06h    WORD    length of ??? buffer (see AH=06h)
  9395.  08h    DWORD    -> ??? buffer (see AH=06h)
  9396.  0Ch    WORD    length of ??? buffer (see AH=07h)
  9397.  0Eh    DWORD    -> ??? buffer (see AH=07h)
  9398.  12h    WORD    ??? (see AH=07h)
  9399.  14h    WORD    ??? (see AH=10h) (subfunction 01h)
  9400.  16h    WORD    ??? (see AH=10h) (subfunction 01h)
  9401.  18h    WORD    ??? (see AH=10h) (subfunction 00h)
  9402.  1Ah    WORD    ??? (see AH=10h) (subfunction 01h)
  9403. --------r-84---------------------------------
  9404. INT 84 - reserved for BASIC
  9405. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  9406. --------r-85---------------------------------
  9407. INT 85 - reserved for BASIC
  9408. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  9409.       v4.0, and may be left dangling by other programs written with the
  9410.       same version of compiled BASIC
  9411. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  9412. --------N-86---------------------------------
  9413. INT 86 - NetBIOS - ORIGINAL INT 18
  9414. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  9415. SeeAlso: INT 18"BOOT HOOK"
  9416. --------r-86---------------------------------
  9417. INT 86 - IBM ROM BASIC - used while in interpreter
  9418. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9419.     BASIC.COM/BASICA.COM do not restore vector on termination
  9420. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  9421. --------r-86---------------------------------
  9422. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  9423. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  9424. --------r-87---------------------------------
  9425. INT 87 - IBM ROM BASIC - used while in interpreter
  9426. Notes:    called by ROM BASIC
  9427.     BASIC.COM/BASICA.COM do not restore vector on termination
  9428. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  9429. --------r-87---------------------------------
  9430. INT 87 - APL*PLUS/PC - ???
  9431. SeeAlso: INT 86"APL",INT 88/AL=00h
  9432. --------v-87---------------------------------
  9433. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  9434. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  9435.       following
  9436. SeeAlso: INT 8B"VIRUS"
  9437. --------r-88---------------------------------
  9438. INT 88 - IBM ROM BASIC - used while in interpreter
  9439. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9440.     BASIC.COM/BASICA.COM do not restore vector on termination
  9441. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  9442. --------r-88--00-----------------------------
  9443. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  9444.     AL = 00h
  9445.     BX = STPTR of the variable to be assigned
  9446.     ES:SI -> model of type, rank, and shape (see #03978)
  9447. Return: ES:DI -> first data byte of object
  9448.     DX:CX = number of elements in the object
  9449. SeeAlso: INT 88/AL=01h,INT 88/AL=08h,INT C8"APL"
  9450.  
  9451. Format of APL*PLUS/PC shape model:
  9452. Offset    Size    Description    (Table 03978)
  9453.  00h    BYTE    type
  9454.         01h character (2-byte dimension sizes)
  9455.         02h integer (2-byte dimension sizes)
  9456.         08h floating point (2-byte dimension sizes)
  9457.         11h character (4-byte dimension sizes)
  9458.         12h integer (4-byte dimension sizes)
  9459.         18h floating point (4-byte dimension sizes)
  9460.  01h    BYTE    rank
  9461.  02h    (D)WORD first dimension of shape
  9462.  N    (D)WORD second dimension of shape
  9463.     ...
  9464. --------r-88--01-----------------------------
  9465. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  9466.     AL = 01h
  9467.     AH = rank
  9468.     BX = STPTR of the variable to be assigned
  9469.     CX = first dimension (if any)
  9470.     DX = second dimension (if any)
  9471. Return: ES:DI -> object
  9472.     CX = number of elements in the object
  9473. Note:    each dimension must be 32767 or smaller
  9474. SeeAlso: AL=00h,AL=02h,AL=08h,INT C8"APL"
  9475. --------r-88--02-----------------------------
  9476. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  9477.     AL = 02h
  9478.     AH = rank
  9479.     BX = STPTR of the variable to be assigned
  9480.     CX = first dimension (if any)
  9481.     DX = second dimension (if any)
  9482. Return: ES:DI -> object
  9483.     CX = number of elements in the object
  9484. Note:    each dimension must be 32767 or smaller
  9485. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  9486. --------r-88--08-----------------------------
  9487. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  9488.     AL = 08h
  9489.     AH = rank
  9490.     BX = STPTR of the variable to be assigned
  9491.     CX = first dimension (if any)
  9492.     DX = second dimension (if any)
  9493. Return: ES:DI -> object
  9494.     CX = number of elements in the object
  9495. Note:    each dimension must be 32767 or smaller
  9496. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  9497. --------r-88--F5-----------------------------
  9498. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  9499.     AL = F5h
  9500.     BX = STPTR of object
  9501. SeeAlso: INT C8"APL"
  9502. --------r-88--F6-----------------------------
  9503. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  9504.     AL = F6h
  9505.     BX = STPTR of object
  9506. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  9507. --------r-88--F7-----------------------------
  9508. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  9509.     AL = F7h
  9510.     BX = STPTR of object
  9511. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  9512. --------r-88--F8-----------------------------
  9513. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  9514.     AL = F8h
  9515.     BX = STPTR of object
  9516. Return: BX = name's outswapping status
  9517.         0000h eligible
  9518.         0001h not eligible
  9519. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  9520. --------r-88--F9-----------------------------
  9521. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  9522.     AL = F9h
  9523.     ES:SI -> name
  9524.     CX = length of name
  9525. Return: CF set if name ill-formed or already in use
  9526.         BX = STPTR if already in symbol table
  9527.     CF clear if name is available for use
  9528.         BX = 0000h
  9529. Note:    does not force the name into the workspace
  9530. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  9531. --------r-88--FC-----------------------------
  9532. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  9533.     AL = FCh
  9534.     BX = amount of memory needed (paragraphs)
  9535. Return: CF clear if memory available
  9536.     CF set if a workspace compaction is required
  9537. SeeAlso: AL=FDh,INT C8"APL"
  9538. --------r-88--FD-----------------------------
  9539. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  9540.     AL = FDh
  9541. Return: BX = number of paragraphs available in workspace
  9542. SeeAlso: AL=FCh,INT C8"APL"
  9543. --------r-88--FE-----------------------------
  9544. INT 88 - APL*PLUS/PC - CREATE NAME
  9545.     AL = FEh
  9546.     ES:SI -> name
  9547.     CX = length of name
  9548. Return: BX = STPTR of name
  9549.     DX = interpreter's data segment
  9550. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  9551. --------r-88--FF-----------------------------
  9552. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  9553.     AL = FFh
  9554.     ES:SI -> name
  9555.     CX = length of name
  9556. Return: CF set if name ill-formed or already in use
  9557.         BX = STPTR if already in symbol table
  9558.     CF clear if name is available for use
  9559.         BX = 0000h
  9560. Note:    forces the name into the workspace and makes it immune from outswapping
  9561. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  9562. --------r-89---------------------------------
  9563. INT 89 - IBM ROM BASIC - used while in interpreter
  9564. Notes:    called by ROM BASIC
  9565.     BASIC.COM/BASICA.COM do not restore vector on termination
  9566. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  9567. --------r-89---------------------------------
  9568. INT 89 - APL*PLUS/PC - ???
  9569. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  9570.       the older interrupts
  9571. SeeAlso: INT C9"APL"
  9572. --------r-8A---------------------------------
  9573. INT 8A - IBM ROM BASIC - used while in interpreter
  9574. Notes:    called by ROM BASIC
  9575.     BASIC.COM/BASICA.COM do not restore vector on termination
  9576. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  9577. --------r-8A---------------------------------
  9578. INT 8A - APL*PLUS/PC - PRINT SCREEN
  9579. Note:    same as INT 05
  9580. SeeAlso: INT 05"PRINT SCREEN",INT 8C"APL",INT CA"APL"
  9581. --------r-8B---------------------------------
  9582. INT 8B - IBM ROM BASIC - used while in interpreter
  9583. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9584.     BASIC.COM/BASICA.COM do not restore vector on termination
  9585. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  9586. --------r-8B---------------------------------
  9587. INT 8B - APL*PLUS/PC - BEEP
  9588. Note:    same as printing a ^G via INT 21/AH=02h
  9589. SeeAlso: INT 21/AH=02h,INT CB"APL"
  9590. --------v-8B---------------------------------
  9591. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  9592. Note:    if the ZeroHunt virus is resident, this vector will contain either
  9593.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  9594. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  9595. --------r-8C---------------------------------
  9596. INT 8C - IBM ROM BASIC - used while in interpreter
  9597. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9598.     BASIC.COM/BASICA.COM do not restore vector on termination
  9599. --------r-8C---------------------------------
  9600. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  9601.     AX = flag
  9602.         0000h do not save display attributes
  9603.         0001h save attributes
  9604. SeeAlso: INT CC"APL"
  9605. --------r-8D---------------------------------
  9606. INT 8D - IBM ROM BASIC - used while in interpreter
  9607. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9608.     BASIC.COM/BASICA.COM do not restore vector on termination
  9609. --------r-8E---------------------------------
  9610. INT 8E - IBM ROM BASIC - used while in interpreter
  9611. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9612.     BASIC.COM/BASICA.COM do not restore vector on termination
  9613. --------r-8F---------------------------------
  9614. INT 8F - IBM ROM BASIC - used while in interpreter
  9615. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9616.     BASIC.COM/BASICA.COM do not restore vector on termination
  9617. --------r-90---------------------------------
  9618. INT 90 - IBM ROM BASIC - used while in interpreter
  9619. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9620.     BASIC.COM/BASICA.COM do not restore vector on termination
  9621. --------r-90---------------------------------
  9622. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  9623. --------r-91---------------------------------
  9624. INT 91 - IBM ROM BASIC - used while in interpreter
  9625. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9626.     BASIC.COM/BASICA.COM do not restore vector on termination
  9627. --------N-91---------------------------------
  9628. INT 91 - IBM TOKEN RING ADAPTER - ???
  9629. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  9630. --------!---Section--------------------------
  9631.